diff --git a/src/LGraphCanvas.ts b/src/LGraphCanvas.ts index a09439eed..1a204d1e5 100644 --- a/src/LGraphCanvas.ts +++ b/src/LGraphCanvas.ts @@ -2568,6 +2568,7 @@ export class LGraphCanvas implements ConnectionColorContext { pointer.onDrag = eMove => widgetInstance.onDrag({ e: eMove, node, + canvas: this, }) } else { if (widget.mouse) { diff --git a/src/widgets/BaseWidget.ts b/src/widgets/BaseWidget.ts index f6c9b959a..af3f0258b 100644 --- a/src/widgets/BaseWidget.ts +++ b/src/widgets/BaseWidget.ts @@ -96,6 +96,7 @@ export abstract class BaseWidget implements IBaseWidget { onDrag(options: { e: CanvasMouseEvent node: LGraphNode + canvas: LGraphCanvas }): void {} /** diff --git a/src/widgets/NumberWidget.ts b/src/widgets/NumberWidget.ts index 903afd169..2acd0f5df 100644 --- a/src/widgets/NumberWidget.ts +++ b/src/widgets/NumberWidget.ts @@ -146,8 +146,9 @@ export class NumberWidget extends BaseWidget implements INumericWidget { override onDrag(options: { e: CanvasMouseEvent node: LGraphNode + canvas: LGraphCanvas }) { - const { e, node } = options + const { e, node, canvas } = options const width = this.width || node.width const x = e.canvasX - node.pos[0] const delta = x < 40 @@ -168,9 +169,7 @@ export class NumberWidget extends BaseWidget implements INumericWidget { newValue = this.options.max } if (newValue !== this.value) { - this.value = newValue - return true + this.setValue(newValue, { e, node, canvas }) } - return false } } diff --git a/src/widgets/SliderWidget.ts b/src/widgets/SliderWidget.ts index 5bebfc2be..4faeb801e 100644 --- a/src/widgets/SliderWidget.ts +++ b/src/widgets/SliderWidget.ts @@ -119,6 +119,7 @@ export class SliderWidget extends BaseWidget implements ISliderWidget { override onDrag(options: { e: CanvasMouseEvent node: LGraphNode + canvas: LGraphCanvas }) { if (this.options.read_only) return false @@ -131,9 +132,7 @@ export class SliderWidget extends BaseWidget implements ISliderWidget { const newValue = this.options.min + (this.options.max - this.options.min) * slideFactor if (newValue !== this.value) { - this.value = newValue - return true + this.setValue(newValue, options) } - return false } }