diff options
author | gshawn3 <133769806+gshawn3@users.noreply.github.com> | 2023-06-30 10:49:26 +0000 |
---|---|---|
committer | gshawn3 <133769806+gshawn3@users.noreply.github.com> | 2023-06-30 10:49:26 +0000 |
commit | 8a07c59baa670f8ed54757f7ac7580b27ecac3dd (patch) | |
tree | 1d890f02cacc04f5b2cc3bc5e37315845dd81d3b | |
parent | 394ffa7b0a7fff3ec484bcd084e673a8b301ccc8 (diff) | |
download | stable-diffusion-webui-gfx803-8a07c59baa670f8ed54757f7ac7580b27ecac3dd.tar.gz stable-diffusion-webui-gfx803-8a07c59baa670f8ed54757f7ac7580b27ecac3dd.tar.bz2 stable-diffusion-webui-gfx803-8a07c59baa670f8ed54757f7ac7580b27ecac3dd.zip |
fix for #11534: canvas zoom and pan extension hijacking shortcut keys
-rw-r--r-- | extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js | 49 |
1 files changed, 30 insertions, 19 deletions
diff --git a/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js b/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js index 5ebd2073..ed3e52bc 100644 --- a/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js +++ b/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js @@ -608,23 +608,29 @@ onUiLoaded(async() => { // Handle keydown events function handleKeyDown(event) { - const hotkeyActions = { - [hotkeysConfig.canvas_hotkey_reset]: resetZoom, - [hotkeysConfig.canvas_hotkey_overlap]: toggleOverlap, - [hotkeysConfig.canvas_hotkey_fullscreen]: fitToScreen - }; + // before activating shortcut, ensure user is not actively typing in an input field + if(event.target.nodeName === 'TEXTAREA' || event.target.nodeName === 'INPUT') { + event.preventDefault; + } else { - const action = hotkeyActions[event.code]; - if (action) { - event.preventDefault(); - action(event); - } + const hotkeyActions = { + [hotkeysConfig.canvas_hotkey_reset]: resetZoom, + [hotkeysConfig.canvas_hotkey_overlap]: toggleOverlap, + [hotkeysConfig.canvas_hotkey_fullscreen]: fitToScreen + }; - if ( - isModifierKey(event, hotkeysConfig.canvas_hotkey_zoom) || - isModifierKey(event, hotkeysConfig.canvas_hotkey_adjust) - ) { - event.preventDefault(); + const action = hotkeyActions[event.code]; + if (action) { + event.preventDefault(); + action(event); + } + + if ( + isModifierKey(event, hotkeysConfig.canvas_hotkey_zoom) || + isModifierKey(event, hotkeysConfig.canvas_hotkey_adjust) + ) { + event.preventDefault(); + } } } @@ -687,10 +693,15 @@ onUiLoaded(async() => { // Handle the move event for pan functionality. Updates the panX and panY variables and applies the new transform to the target element. function handleMoveKeyDown(e) { if (e.code === hotkeysConfig.canvas_hotkey_move) { - if (!e.ctrlKey && !e.metaKey && isKeyDownHandlerAttached) { - e.preventDefault(); - document.activeElement.blur(); - isMoving = true; + // before activating shortcut, ensure user is not actively typing in an input field + if(e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'INPUT') { + event.preventDefault; + } else { + if (!e.ctrlKey && !e.metaKey && isKeyDownHandlerAttached) { + e.preventDefault(); + document.activeElement.blur(); + isMoving = true; + } } } } |