From 0c9537e91019516bae1438e1007a6e28c4798353 Mon Sep 17 00:00:00 2001 From: ebolam Date: Wed, 3 May 2023 12:04:05 -0400 Subject: [PATCH] Potential fix for putting pasted text in wrong action --- static/koboldai.js | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/static/koboldai.js b/static/koboldai.js index 7cc7a7e5..cfc32d21 100644 --- a/static/koboldai.js +++ b/static/koboldai.js @@ -3153,15 +3153,22 @@ function fix_dirty_game_text() { //Fixing text outside of chunks for (node of game_text.childNodes) { if ((!(node instanceof HTMLElement) || !node.hasAttribute("chunk")) && (node.textContent.trim() != "")) { - //We have a text only node. It should be moved into the previous chunk + //We have a text only node. It should be moved into the previous chunk if it is marked as dirty, next node if not and it's dirty, or the previous if neither is dirty + var node_text = "" if (node instanceof HTMLElement) { - node.previousElementSibling.innerText = node.previousElementSibling.innerText + node.innerText; + node_text = node.innerText; } else { - node.previousElementSibling.innerText = node.previousElementSibling.innerText + node.data; + node_text = node.data; } - if (!dirty_chunks.includes(node.previousElementSibling.getAttribute("chunk"))) { - dirty_chunks.push(node.previousElementSibling.getAttribute("chunk")); + if (!(node.nextElementSibling) || !(dirty_chunks.includes(node.nextElementSibling.getAttribute("chunk"))) || dirty_chunks.includes(node.previousElementSibling.getAttribute("chunk"))) { + node.previousElementSibling.innerText = node.previousElementSibling.innerText + node_text; + if (!dirty_chunks.includes(node.previousElementSibling.getAttribute("chunk"))) { + dirty_chunks.push(node.previousElementSibling.getAttribute("chunk")); + } + } else { + node.nextElementSibling.innerText = node.nextElementSibling.innerText + node_text; } + //Looks like sometimes it splits the parent. Let's look for that and fix it too if (node.nextElementSibling && (node.nextElementSibling.getAttribute("chunk") == node.previousElementSibling.getAttribute("chunk"))) { node.previousElementSibling.innerText = node.previousElementSibling.innerText + node.nextElementSibling.innerText;