aboutsummaryrefslogtreecommitdiff
path: root/ext/fg/js/float.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/fg/js/float.js')
-rw-r--r--ext/fg/js/float.js17
1 files changed, 8 insertions, 9 deletions
diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js
index f25dfd73..74bc58b0 100644
--- a/ext/fg/js/float.js
+++ b/ext/fg/js/float.js
@@ -56,15 +56,14 @@ class DisplayFloat extends Display {
onKeyDown(e) {
const key = Display.getKeyFromEvent(e);
- const handlers = DisplayFloat.onKeyDownHandlers;
- if (hasOwn(handlers, key)) {
- const handler = handlers[key];
+ const handler = DisplayFloat._onKeyDownHandlers.get(key);
+ if (typeof handler === 'function') {
if (handler(this, e)) {
e.preventDefault();
- return;
+ return true;
}
}
- super.onKeyDown(e);
+ return super.onKeyDown(e);
}
getOptionsContext() {
@@ -96,15 +95,15 @@ class DisplayFloat extends Display {
}
}
-DisplayFloat.onKeyDownHandlers = {
- 'C': (self, e) => {
+DisplayFloat._onKeyDownHandlers = new Map([
+ ['C', (self, e) => {
if (e.ctrlKey && !window.getSelection().toString()) {
self.onSelectionCopy();
return true;
}
return false;
- }
-};
+ }]
+]);
DisplayFloat._messageHandlers = new Map([
['setContent', (self, {type, details}) => self.setContent(type, details)],