aboutsummaryrefslogtreecommitdiff
path: root/extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js
diff options
context:
space:
mode:
authorgshawn3 <133769806+gshawn3@users.noreply.github.com>2023-06-30 03:49:26 -0700
committergshawn3 <133769806+gshawn3@users.noreply.github.com>2023-06-30 03:49:26 -0700
commit8a07c59baa670f8ed54757f7ac7580b27ecac3dd (patch)
tree1d890f02cacc04f5b2cc3bc5e37315845dd81d3b /extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js
parent394ffa7b0a7fff3ec484bcd084e673a8b301ccc8 (diff)
fix for #11534: canvas zoom and pan extension hijacking shortcut keys
Diffstat (limited to 'extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js')
-rw-r--r--extensions-builtin/canvas-zoom-and-pan/javascript/zoom.js49
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;
+ }
}
}
}