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