From fb008569abfdfe1efc58376faec2c9ac1ba9d7b0 Mon Sep 17 00:00:00 2001 From: Nadav Tasher Date: Wed, 25 Dec 2024 00:24:41 +0200 Subject: [PATCH] Make sure keyboard shortcuts are enabled and no text is selected on shortcut triggers --- client/lib/keyboard.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/client/lib/keyboard.js b/client/lib/keyboard.js index b84c1e494..fa1e706b7 100644 --- a/client/lib/keyboard.js +++ b/client/lib/keyboard.js @@ -14,6 +14,22 @@ window.addEventListener('keydown', (e) => { Mousetrap.trigger(String.fromCharCode(e.which).toLowerCase()); }); +// Store the original stopCallback in a global +const originalStopCallback = Mousetrap.stopCallback; + +// Overwrite the stopCallback to allow for more keyboard shortcut customizations +Mousetrap.stopCallback = (e, element) => { + // Are shortcuts enabled for the user? + if (!ReactiveCache.getCurrentUser().isKeyboardShortcuts()) + return true; + + // Make sure there are no selected characters + if (window.getSelection().type === "Range") + return true; + + return originalStopCallback(e, element); +} + function getHoveredCardId() { const card = $('.js-minicard:hover').get(0); if (!card) return null;