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('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)