From 461e1d0818a03d2c5455a1888081d3d0c88e76a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20V=C3=B6gele?= Date: Fri, 30 Jul 2021 12:40:32 +0200 Subject: [PATCH] Cancel scheudled measurements then the ruler is being cleared --- src/foundry_imports.js | 10 +++++++--- src/ruler.js | 3 ++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/foundry_imports.js b/src/foundry_imports.js index 4eac54b..741bb58 100644 --- a/src/foundry_imports.js +++ b/src/foundry_imports.js @@ -134,9 +134,7 @@ function scheduleMeasurement(destination, event) { this.measure(destination, {snap: !originalEvent.shiftKey}); event._measureTime = Date.now(); this._state = Ruler.STATES.MEASURING; - window.clearTimeout(this.deferredMeasurementTimeout); - this.deferredMeasurementTimeout = undefined; - this.deferredMeasurementResolve?.(); + cancelScheduledMeasurement.call(this); } else { this.deferredMeasurementData = {destination, event}; @@ -147,6 +145,12 @@ function scheduleMeasurement(destination, event) { } } +export function cancelScheduledMeasurement() { + window.clearTimeout(this.deferredMeasurementTimeout); + this.deferredMeasurementTimeout = undefined; + this.deferredMeasurementResolve?.(); +} + // This is a modified version of Ruler.measure form foundry 0.7.9 export function measure(destination, options={}) { const isToken = this.draggedEntity instanceof Token; diff --git a/src/ruler.js b/src/ruler.js index 381956c..7d9f4ef 100644 --- a/src/ruler.js +++ b/src/ruler.js @@ -1,4 +1,4 @@ -import {measure} from "./foundry_imports.js" +import {cancelScheduledMeasurement, measure} from "./foundry_imports.js" import {getMovementHistory} from "./movement_tracking.js"; import {settingsKey} from "./settings.js"; import {getSnapPointForEntity, setSnapParameterOnOptions} from "./util.js"; @@ -16,6 +16,7 @@ export class DragRulerRuler extends Ruler { this.previousWaypoints = []; this.previousLabels.removeChildren().forEach(c => c.destroy()); this.dragRulerRanges = undefined; + cancelScheduledMeasurement.call(this); } async moveToken(event) {