From fb3665d758cc71d3d2b6482deefd605a4c22ba10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20V=C3=B6gele?= Date: Wed, 9 Feb 2022 10:30:17 +0100 Subject: [PATCH] If no measurement has been performed yet before dropping the token, schedule a measurement on drop (fixes #153) --- src/main.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main.js b/src/main.js index 0a761aa..125196c 100644 --- a/src/main.js +++ b/src/main.js @@ -97,6 +97,7 @@ async function tokenLayerUndoHistory(wrapped) { function onEntityLeftDragStart(wrapped, event) { wrapped(event); + console.warn("start", Date.now()); const isToken = this instanceof Token; const ruler = canvas.controls.ruler ruler.draggedEntity = this; @@ -127,6 +128,7 @@ function onEntityLeftDragMove(wrapped, event) { function onEntityDragLeftDrop(event) { const ruler = canvas.controls.ruler + console.warn("stop", ruler._state, Date.now()); if (!ruler.isDragRuler) { ruler.draggedEntity = undefined; return false @@ -137,6 +139,9 @@ function onEntityDragLeftDrop(event) { // This can happen if the user presses ESC during drag (maybe there are other ways too) if (selectedTokens.length === 0) selectedTokens.push(ruler.draggedEntity); + // This can happen if the ruler is being dragged so rapidly that the drag move handler hasn't been called before dropping + if (ruler._state === Ruler.STATES.STARTING) + onMouseMove.call(ruler, event); ruler._state = Ruler.STATES.MOVING moveEntities.call(ruler, ruler.draggedEntity, selectedTokens); return true