Fix for content editing. Highlighting is removed properly now.

Still have weird line on top
This commit is contained in:
ebolam
2022-09-16 09:16:56 -04:00
parent a3e33c922f
commit 04b6ad8300
2 changed files with 16 additions and 37 deletions

View File

@@ -2127,28 +2127,29 @@ function select_game_text(event) {
if ((new_selected_game_chunk != selected_game_chunk) && (selected_game_chunk != null)) {
edit_game_text();
}
if (new_selected_game_chunk != selected_game_chunk) {
selected_game_chunk = new_selected_game_chunk
}
//since we have that delete me span for initial spacing, we don't want that to be editable, so let's fix that here
if (selected_game_chunk == document.getElementById("Delete Me")) {
//Check to see if new selection is a game chunk or something else
if (((new_selected_game_chunk.id == "story_prompt") || (new_selected_game_chunk.id.slice(0,20) == "Selected Text Chunk ")) && (document.activeElement.isContentEditable)) {
if (new_selected_game_chunk != selected_game_chunk) {
for (item of document.getElementsByClassName("editing")) {
item.classList.remove("editing");
}
selected_game_chunk = new_selected_game_chunk;
selected_game_chunk.classList.add("editing");
}
} else {
selected_game_chunk = null;
}
//set editting class
for (item of document.getElementsByClassName("editing")) {
item.classList.remove("editing");
}
if (selected_game_chunk != null) {
selected_game_chunk.classList.add("editing");
for (item of document.getElementsByClassName("editing")) {
item.classList.remove("editing");
}
}
}
}
function edit_game_text() {
if ((selected_game_chunk != null) && (selected_game_chunk.textContent != selected_game_chunk.original_text) && (selected_game_chunk != document.getElementById("Delete Me"))) {
console.log(selected_game_chunk);
if (selected_game_chunk.id == "story_prompt") {
sync_to_server(selected_game_chunk);
} else {
@@ -2159,28 +2160,6 @@ function edit_game_text() {
}
}
function clear_edit_game_text_tag() {
let id = null;
if (document.selection) {
if (document.selection.createRange().parentElement().id == 'story_prompt') {
id = document.selection.createRange().parentElement().id;
} else {
id = document.selection.createRange().parentElement().parentElement().id;
}
} else {
if (window.getSelection().anchorNode.parentNode.id == 'story_prompt') {
id = window.getSelection().anchorNode.parentNode.id;
} else {
id = window.getSelection().anchorNode.parentNode.parentNode.id;
}
}
if ((id != 'story_prompt') && (id.slice(0, 20) != "Selected Text Chunk ")) {
for (item of document.getElementsByClassName("editing")) {
item.classList.remove("editing");
}
}
}
function save_preset() {
socket.emit("save_new_preset", {"preset": document.getElementById("new_preset_name").value, "description": document.getElementById("new_preset_description").value});
document.getElementById('save_preset').classList.add('hidden');

View File

@@ -47,7 +47,7 @@
<!------------ Game Text Screen--------------------->
<div class="gamescreen" id="gamescreen">
<div id="disconnect_message"><center><h1>Disconnected</h1></center></div>
<div class="gametext" id="Selected Text" contenteditable=true onblur="edit_game_text();selected_game_chunk = null;clear_edit_game_text_tag();" onclick="select_game_text(null);" onkeyup="select_game_text(event);">
<div class="gametext" id="Selected Text" contenteditable=true onblur="select_game_text(null);" onclick="select_game_text(null);" onkeyup="select_game_text(event);">
<span id="story_prompt" class="var_sync_story_prompt var_sync_alt_story_prompt_length var_sync_alt_story_prompt_in_ai rawtext"></span>
<span id="Delete Me">
<span>