changeset 2384:32660fa6928c

Cleanup.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 04 Nov 2021 07:07:27 +0200
parents 19a1b9048934
children 3a3856b8379f
files src/util.js
diffstat 1 files changed, 20 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- a/src/util.js	Thu Nov 04 06:49:57 2021 +0200
+++ b/src/util.js	Thu Nov 04 07:07:27 2021 +0200
@@ -5,7 +5,7 @@
 //
 
 var mapElem = null;
-var mapDragEnable = false;
+var mapDragEnable = false, mapDragGoing = false;
 var mapDragPos = { x: 0, y: 0, mx: 0, my: 0 };
 var mapCurrPos = null;
 var mapCurrLoc = null;
@@ -234,21 +234,25 @@
 
 function mapDragUpHandler(ev)
 {
-  document.removeEventListener("mousemove", mapDragMoveHandler);
-  document.removeEventListener("mouseup", mapDragUpHandler);
-
-  mapElem.style.cursor = "grab";
-  mapElem.style.removeProperty("user-select");
+  if (mapDragGoing)
+  {
+    mapDragGoing = false;
+    mapElem.style.cursor = "grab";
+    mapElem.style.removeProperty("user-select");
+  }
 }
 
 
 function mapDragMoveHandler(ev)
 {
-  const dx = ev.clientX - mapDragPos.mx;
-  const dy = ev.clientY - mapDragPos.my;
+  if (mapDragGoing)
+  {
+    const dx = ev.clientX - mapDragPos.mx;
+    const dy = ev.clientY - mapDragPos.my;
 
-  mapElem.scrollLeft = mapDragPos.x - dx;
-  mapElem.scrollTop = mapDragPos.y - dy;
+    mapElem.scrollLeft = mapDragPos.x - dx;
+    mapElem.scrollTop = mapDragPos.y - dy;
+  }
 }
 
 
@@ -256,6 +260,9 @@
 {
   if (mapDragEnable)
   {
+    mapElem.style.cursor = "grabbing";
+    mapElem.style.userSelect = "none";
+
     if (mapScrollTimerID != -1)
       clearInterval(mapScrollTimerID);
 
@@ -266,11 +273,7 @@
       my: ev.clientY,
     };
 
-    mapElem.style.cursor = "grabbing";
-    mapElem.style.userSelect = "none";
-
-    document.addEventListener("mousemove", mapDragMoveHandler);
-    document.addEventListener("mouseup", mapDragUpHandler);
+    mapDragGoing = true;
   }
 }
 
@@ -310,5 +313,7 @@
 
   mapAddEvent("sscroll", "change", mapUpdateDragScroll);
   mapAddEvent("smap", "mousedown", mapStartDragScroll);
+  document.addEventListener("mousemove", mapDragMoveHandler);
+  document.addEventListener("mouseup", mapDragUpHandler);
   mapUpdateDragScroll();
 }