fix: always remove document keydown listener in unbindEvents

Remove the LiteGraph.vueNodesMode check when removing the document-level
keydown listener in unbindEvents. If vueNodesMode was true during bindEvents
but changed before unbindEvents, the listener would be left dangling.
Now guarded only by existence of _key_callback.
This commit is contained in:
Johnpaul
2026-01-05 22:48:08 +01:00
parent 9427d7ed60
commit 0e47f9fb10

View File

@@ -2030,8 +2030,10 @@ export class LGraphCanvas implements CustomEventDispatcher<LGraphCanvasEventMap>
canvas.removeEventListener('pointerdown', this._mousedown_callback!) canvas.removeEventListener('pointerdown', this._mousedown_callback!)
canvas.removeEventListener('wheel', this._mousewheel_callback!) canvas.removeEventListener('wheel', this._mousewheel_callback!)
canvas.removeEventListener('keydown', this._key_callback!) canvas.removeEventListener('keydown', this._key_callback!)
if (LiteGraph.vueNodesMode) { // Always remove document keydown listener - it may have been added if vueNodesMode
document.removeEventListener('keydown', this._key_callback!) // was true during bindEvents, even if vueNodesMode has since changed
if (this._key_callback) {
document.removeEventListener('keydown', this._key_callback)
} }
document.removeEventListener('keyup', this._key_callback!) document.removeEventListener('keyup', this._key_callback!)
canvas.removeEventListener('contextmenu', this._doNothing) canvas.removeEventListener('contextmenu', this._doNothing)