Mercurial > hg > batmud > maputils
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(); }