From 0e47f9fb10d7dd3cd73121ca0de40c9def9ee653 Mon Sep 17 00:00:00 2001 From: Johnpaul Date: Mon, 5 Jan 2026 22:48:08 +0100 Subject: [PATCH] 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. --- src/lib/litegraph/src/LGraphCanvas.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/litegraph/src/LGraphCanvas.ts b/src/lib/litegraph/src/LGraphCanvas.ts index 33cdea34b..81fc1b3f4 100644 --- a/src/lib/litegraph/src/LGraphCanvas.ts +++ b/src/lib/litegraph/src/LGraphCanvas.ts @@ -2030,8 +2030,10 @@ export class LGraphCanvas implements CustomEventDispatcher canvas.removeEventListener('pointerdown', this._mousedown_callback!) canvas.removeEventListener('wheel', this._mousewheel_callback!) canvas.removeEventListener('keydown', this._key_callback!) - if (LiteGraph.vueNodesMode) { - document.removeEventListener('keydown', this._key_callback!) + // Always remove document keydown listener - it may have been added if vueNodesMode + // 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!) canvas.removeEventListener('contextmenu', this._doNothing)