|
@@ -215,6 +215,7 @@ this.singlefile.ui = this.singlefile.ui || (() => {
|
|
|
contentSelected = true;
|
|
contentSelected = true;
|
|
|
const range = document.createRange();
|
|
const range = document.createRange();
|
|
|
range.selectNodeContents(selectedElement);
|
|
range.selectNodeContents(selectedElement);
|
|
|
|
|
+ cleanupSelectionRanges();
|
|
|
getSelection().addRange(range);
|
|
getSelection().addRange(range);
|
|
|
if (!multiSelect) {
|
|
if (!multiSelect) {
|
|
|
cleanupAndResolve();
|
|
cleanupAndResolve();
|
|
@@ -224,6 +225,17 @@ this.singlefile.ui = this.singlefile.ui || (() => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ function cleanupSelectionRanges() {
|
|
|
|
|
+ const selection = getSelection();
|
|
|
|
|
+ for (let indexRange = selection.rangeCount - 1; indexRange >= 0; indexRange--) {
|
|
|
|
|
+ const range = selection.getRangeAt(indexRange);
|
|
|
|
|
+ if (range.startOffset == range.endOffset) {
|
|
|
|
|
+ selection.removeRange(range);
|
|
|
|
|
+ indexRange--;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
function cleanupAndResolve() {
|
|
function cleanupAndResolve() {
|
|
|
getAreaSelector().remove();
|
|
getAreaSelector().remove();
|
|
|
removeEventListener("mousemove", mousemoveListener, true);
|
|
removeEventListener("mousemove", mousemoveListener, true);
|