mirror of
https://github.com/Comfy-Org/ComfyUI_frontend.git
synced 2026-04-30 03:01:54 +00:00
Fix new link follows pointer until context menu closed (#968)
- Resolves https://github.com/Comfy-Org/ComfyUI_frontend/issues/3618
This commit is contained in:
@@ -3951,7 +3951,7 @@ export class LGraphCanvas implements ConnectionColorContext {
|
|||||||
/** Get the target snap / highlight point in graph space */
|
/** Get the target snap / highlight point in graph space */
|
||||||
#getHighlightPosition(): ReadOnlyPoint {
|
#getHighlightPosition(): ReadOnlyPoint {
|
||||||
return LiteGraph.snaps_for_comfy
|
return LiteGraph.snaps_for_comfy
|
||||||
? this._highlight_pos ?? this.graph_mouse
|
? this.linkConnector.state.snapLinksPos ?? this._highlight_pos ?? this.graph_mouse
|
||||||
: this.graph_mouse
|
: this.graph_mouse
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3964,7 +3964,8 @@ export class LGraphCanvas implements ConnectionColorContext {
|
|||||||
ctx: CanvasRenderingContext2D,
|
ctx: CanvasRenderingContext2D,
|
||||||
highlightPos: ReadOnlyPoint,
|
highlightPos: ReadOnlyPoint,
|
||||||
): void {
|
): void {
|
||||||
if (!this._highlight_pos) return
|
const linkConnectorSnap = !!this.linkConnector.state.snapLinksPos
|
||||||
|
if (!this._highlight_pos && !linkConnectorSnap) return
|
||||||
|
|
||||||
ctx.fillStyle = "#ffcc00"
|
ctx.fillStyle = "#ffcc00"
|
||||||
ctx.beginPath()
|
ctx.beginPath()
|
||||||
@@ -3982,7 +3983,7 @@ export class LGraphCanvas implements ConnectionColorContext {
|
|||||||
|
|
||||||
const { linkConnector } = this
|
const { linkConnector } = this
|
||||||
const { overReroute, overWidget } = linkConnector
|
const { overReroute, overWidget } = linkConnector
|
||||||
if (!LiteGraph.snap_highlights_node || !linkConnector.isConnecting) return
|
if (!LiteGraph.snap_highlights_node || !linkConnector.isConnecting || linkConnectorSnap) return
|
||||||
|
|
||||||
// Reroute highlight
|
// Reroute highlight
|
||||||
if (overReroute) {
|
if (overReroute) {
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ export interface LinkConnectorState {
|
|||||||
multi: boolean
|
multi: boolean
|
||||||
/** When `true`, existing links are being repositioned. Otherwise, new links are being created. */
|
/** When `true`, existing links are being repositioned. Otherwise, new links are being created. */
|
||||||
draggingExistingLinks: boolean
|
draggingExistingLinks: boolean
|
||||||
|
/** When set, connecting links will all snap to this position. */
|
||||||
|
snapLinksPos?: [number, number]
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Discriminated union to simplify type narrowing. */
|
/** Discriminated union to simplify type narrowing. */
|
||||||
@@ -61,6 +63,7 @@ export class LinkConnector {
|
|||||||
connectingTo: undefined,
|
connectingTo: undefined,
|
||||||
multi: false,
|
multi: false,
|
||||||
draggingExistingLinks: false,
|
draggingExistingLinks: false,
|
||||||
|
snapLinksPos: undefined,
|
||||||
}
|
}
|
||||||
|
|
||||||
readonly events = new LinkConnectorEventTarget()
|
readonly events = new LinkConnectorEventTarget()
|
||||||
@@ -639,6 +642,7 @@ export class LinkConnector {
|
|||||||
hiddenReroutes.clear()
|
hiddenReroutes.clear()
|
||||||
state.multi = false
|
state.multi = false
|
||||||
state.draggingExistingLinks = false
|
state.draggingExistingLinks = false
|
||||||
|
state.snapLinksPos = undefined
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user