Procházet zdrojové kódy

refactored mouse listeners

Gildas před 5 roky
rodič
revize
1d5a99bbcd
1 změnil soubory, kde provedl 22 přidání a 18 odebrání
  1. 22 18
      extension/ui/content/content-ui-editor-web.js

+ 22 - 18
extension/ui/content/content-ui-editor-web.js

@@ -861,13 +861,9 @@ table {
 		}
 		if (message.method == "enableCutPage") {
 			cuttingMode = true;
-			document.body.addEventListener("mouseover", highlightElementToCut);
-			document.body.addEventListener("mouseout", highlightElementToCut);
 		}
 		if (message.method == "disableCutPage") {
 			cuttingMode = false;
-			document.body.removeEventListener("mouseover", highlightElementToCut);
-			document.body.removeEventListener("mouseout", highlightElementToCut);
 			if (cuttingPath) {
 				unhighlightCutElement();
 				cuttingPath = null;
@@ -925,6 +921,8 @@ table {
 		maskPageElement = getMaskElement(PAGE_MASK_CLASS, PAGE_MASK_CONTAINER_CLASS);
 		maskNoteElement = getMaskElement(NOTE_MASK_CLASS);
 		document.documentElement.onmouseup = document.documentElement.ontouchend = onMouseUp;
+		document.documentElement.onmouseover = onMouseOver;
+		document.documentElement.onmouseout = onMouseOut;
 		document.documentElement.onkeydown = onKeyDown;
 		window.onclick = event => event.preventDefault();
 	}
@@ -1194,6 +1192,26 @@ table {
 		}
 	}
 
+	function onMouseOver(event) {
+		if (cuttingMode) {
+			const target = event.target;
+			if (target.classList) {
+				cuttingPath = getEventPath(event);
+				cuttingPathIndex = 0;
+				highlightCutElement(target);
+			}
+		}
+	}
+
+	function onMouseOut() {
+		if (cuttingMode) {
+			if (cuttingPath) {
+				unhighlightCutElement();
+				cuttingPath = null;
+			}
+		}
+	}
+
 	function onKeyDown(event) {
 		if (cuttingMode) {
 			if (event.code == "Tab") {
@@ -1418,20 +1436,6 @@ table {
 		}
 	}
 
-	function highlightElementToCut(event) {
-		const target = event.target;
-		if (cuttingPath) {
-			unhighlightCutElement();
-			cuttingPath = null;
-		}
-		if (target.classList) {
-			cuttingPath = getEventPath(event);
-			cuttingPathIndex = 0;
-			highlightCutElement(target);
-		}
-		event.stopPropagation();
-	}
-
 	function getEventPath(event) {
 		const path = [];
 		let element = event.target;