Răsfoiți Sursa

improve handling of selected content (fix #1417)

Gildas 1 an în urmă
părinte
comite
f7a5a7fda6
1 a modificat fișierele cu 13 adăugiri și 1 ștergeri
  1. 13 1
      src/ui/content/content-ui.js

+ 13 - 1
src/ui/content/content-ui.js

@@ -222,7 +222,19 @@ function markSelectedContent() {
 				}
 			}
 			if (selectionFound && treeWalker.currentNode == range.endContainer && treeWalker.currentNode.querySelectorAll) {
-				treeWalker.currentNode.querySelectorAll("*").forEach(descendantElement => markSelectedNode(descendantElement));
+				for (
+					let offset = range.startContainer === range.endContainer ? range.startOffset : 0;
+					offset < range.endOffset;
+					offset++
+				) {
+					const node = range.endContainer.childNodes[offset];
+					if (node) {
+						markSelectedNode(node);
+						if (node.querySelectorAll) {
+							node.querySelectorAll("*").forEach(markSelectedNode);
+						}
+					}
+				}
 			}
 		}
 	}