Potential fix for putting pasted text in wrong action

This commit is contained in:
ebolam
2023-05-03 12:04:05 -04:00
parent fa3611b994
commit 0c9537e910

View File

@@ -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;