summaryrefslogtreecommitdiff
path: root/src/client/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/scripts')
-rw-r--r--src/client/scripts/hotkey.ts11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/client/scripts/hotkey.ts b/src/client/scripts/hotkey.ts
index ec627ab15b..672dbedde1 100644
--- a/src/client/scripts/hotkey.ts
+++ b/src/client/scripts/hotkey.ts
@@ -12,14 +12,22 @@ type action = {
patterns: pattern[];
callback: Function;
+
+ allowRepeat: boolean;
};
const getKeyMap = keymap => Object.entries(keymap).map(([patterns, callback]): action => {
const result = {
patterns: [],
- callback: callback
+ callback: callback,
+ allowRepeat: true
} as action;
+ if (patterns.match(/^\(.*\)$/) !== null) {
+ result.allowRepeat = false;
+ patterns = patterns.slice(1, -1);
+ }
+
result.patterns = patterns.split('|').map(part => {
const pattern = {
which: [],
@@ -77,6 +85,7 @@ export default {
const matched = match(e, action.patterns);
if (matched) {
+ if (!action.allowRepeat && e.repeat) return;
if (el._hotkey_global && match(e, targetReservedKeys)) return;
e.preventDefault();