mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-25 08:49:36 +00:00
Fix custom widgets not receiving pointermove events (#335)
This commit is contained in:
@@ -2947,8 +2947,17 @@ export class LGraphCanvas {
|
||||
}
|
||||
|
||||
// Resize corner
|
||||
if (this.canvas && !e.ctrlKey) {
|
||||
if (node.inResizeCorner(e.canvasX, e.canvasY)) underPointer |= CanvasItem.ResizeSe
|
||||
if (node.inResizeCorner(e.canvasX, e.canvasY)) {
|
||||
underPointer |= CanvasItem.ResizeSe
|
||||
} else {
|
||||
// Legacy widget mouse callbacks for pointermove events
|
||||
const widget = node.getWidgetOnPos(e.canvasX, e.canvasY)
|
||||
|
||||
if (widget?.mouse) {
|
||||
const x = e.canvasX - node.pos[0]
|
||||
const y = e.canvasY - node.pos[1]
|
||||
this.dirty_canvas = widget.mouse(e, [x, y], node)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Not over a node
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { CanvasColour, Point, Size } from "../interfaces"
|
||||
import type { LGraphCanvas, LGraphNode } from "../litegraph"
|
||||
import type { CanvasMouseEvent } from "./events"
|
||||
import type { CanvasMouseEvent, CanvasPointerEvent } from "./events"
|
||||
|
||||
export interface IWidgetOptions<TValue = unknown> extends Record<string, unknown> {
|
||||
on?: string
|
||||
@@ -135,7 +135,14 @@ export interface IBaseWidget<TElement extends HTMLElement = HTMLElement> {
|
||||
onRemove?(): void
|
||||
beforeQueued?(): void
|
||||
|
||||
mouse?(event: CanvasMouseEvent, arg1: number[], node: LGraphNode): boolean
|
||||
/**
|
||||
* Simple callback for pointer events, allowing custom widgets to events relevant to them.
|
||||
* @param event The pointer event that triggered this callback
|
||||
* @param pointerOffset Offset of the pointer relative to {@link node.pos}
|
||||
* @param node The node this widget belongs to
|
||||
* @todo Expose CanvasPointer API to custom widgets
|
||||
*/
|
||||
mouse?(event: CanvasPointerEvent, pointerOffset: Point, node: LGraphNode): boolean
|
||||
draw?(
|
||||
ctx: CanvasRenderingContext2D,
|
||||
node: LGraphNode,
|
||||
|
||||
Reference in New Issue
Block a user