From c94810a8bfd0a1857a4451427c20c0915c7ae5d6 Mon Sep 17 00:00:00 2001 From: pandrr Date: Tue, 10 Jan 2023 21:04:17 +0000 Subject: [PATCH 1/2] add preference to use number-row-keys as fkeys --- app/document/input/keyboard.js | 38 ++++++++++++++++++++++++++++++++++ app/html/preferences.html | 3 +++ app/windows/preferences.js | 6 ++++++ 3 files changed, 47 insertions(+) diff --git a/app/document/input/keyboard.js b/app/document/input/keyboard.js index 4d32e52..7a68b9b 100644 --- a/app/document/input/keyboard.js +++ b/app/document/input/keyboard.js @@ -171,6 +171,42 @@ class KeyboardEvent extends events.EventEmitter { } key_typed(event) { + + if(this.use_numrow) { + switch (event.code) { + case "Digit1": + this.emit("f_key", 1); + return; + case "Digit2": + this.emit("f_key", 2); + return; + case "Digit3": + this.emit("f_key", 3); + return; + case "Digit4": + this.emit("f_key", 4); + return; + case "Digit5": + this.emit("f_key", 5); + return; + case "Digit6": + this.emit("f_key", 6); + return; + case "Digit7": + this.emit("f_key", 7); + return; + case "Digit8": + this.emit("f_key", 8); + return; + case "Digit9": + this.emit("f_key", 9); + return; + case "Digit0": + this.emit("f_key", 0); + return; + } + } + if (this.use_numpad) { switch (event.code) { case "Numpad1": @@ -345,9 +381,11 @@ class KeyboardEvent extends events.EventEmitter { constructor() { super(); this.use_numpad = false; + this.use_numrow = false; this.insert_mode = false; this.overwrite_mode = false; on("use_numpad", (event, value) => this.use_numpad = value); + on("use_numrow", (event, value) => this.use_numrow = value); on("insert_mode", (event, value) => this.insert_mode = value); on("overwrite_mode", (event, value) => this.overwrite_mode = value); on("f_key", (event, value) => this.emit("f_key", value)); diff --git a/app/html/preferences.html b/app/html/preferences.html index 84d64c7..377aef7 100644 --- a/app/html/preferences.html +++ b/app/html/preferences.html @@ -18,6 +18,9 @@
+
+ +
diff --git a/app/windows/preferences.js b/app/windows/preferences.js index 200f833..9936c54 100644 --- a/app/windows/preferences.js +++ b/app/windows/preferences.js @@ -11,6 +11,7 @@ function prefs({nick, group, use_numpad, use_shift, chunked_undo, use_flashing_c $("nick").value = nick; $("group").value = group; $("use_numpad").checked = use_numpad; + $("use_numrow").checked = use_numrow; $("use_shift").checked = use_shift; $("chunked_undo").checked = chunked_undo; $("use_flashing_cursor").checked = use_flashing_cursor; @@ -45,6 +46,10 @@ function use_numpad() { update("use_numpad", $("use_numpad").checked); } +function use_numrow() { + update("use_numrow", $("use_numrow").checked); +} + function use_shift() { update("use_shift", $("use_shift").checked); } @@ -146,6 +151,7 @@ document.addEventListener("DOMContentLoaded", (event) => { $("group").addEventListener("keydown", override_submit, true); $("group").addEventListener("input", (event) => group(), true); $("use_numpad").addEventListener("change", (event) => use_numpad(), true); + $("use_numrow").addEventListener("change", (event) => use_numrow(), true); $("use_shift").addEventListener("change", (event) => use_shift(), true); $("chunked_undo").addEventListener("change", (event) => chunked_undo(), true); $("use_flashing_cursor").addEventListener("change", (event) => use_flashing_cursor(), true); From 19c2db04cf06c37ccfc2587bf81d32710fe44b18 Mon Sep 17 00:00:00 2001 From: pandrr Date: Wed, 11 Jan 2023 08:52:04 +0000 Subject: [PATCH 2/2] fkey offset fix --- app/document/input/keyboard.js | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/app/document/input/keyboard.js b/app/document/input/keyboard.js index 7a68b9b..bb56a93 100644 --- a/app/document/input/keyboard.js +++ b/app/document/input/keyboard.js @@ -175,34 +175,34 @@ class KeyboardEvent extends events.EventEmitter { if(this.use_numrow) { switch (event.code) { case "Digit1": - this.emit("f_key", 1); + this.emit("f_key", 0); return; case "Digit2": - this.emit("f_key", 2); + this.emit("f_key", 1); return; case "Digit3": - this.emit("f_key", 3); + this.emit("f_key", 2); return; case "Digit4": - this.emit("f_key", 4); + this.emit("f_key", 3); return; case "Digit5": - this.emit("f_key", 5); + this.emit("f_key", 4); return; case "Digit6": - this.emit("f_key", 6); + this.emit("f_key", 5); return; case "Digit7": - this.emit("f_key", 7); + this.emit("f_key", 6); return; case "Digit8": - this.emit("f_key", 8); + this.emit("f_key", 7); return; case "Digit9": - this.emit("f_key", 9); + this.emit("f_key", 8); return; case "Digit0": - this.emit("f_key", 0); + this.emit("f_key", 9); return; } }