diff --git a/app/document/input/keyboard.js b/app/document/input/keyboard.js index 4d32e529..bb56a93a 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", 0); + return; + case "Digit2": + this.emit("f_key", 1); + return; + case "Digit3": + this.emit("f_key", 2); + return; + case "Digit4": + this.emit("f_key", 3); + return; + case "Digit5": + this.emit("f_key", 4); + return; + case "Digit6": + this.emit("f_key", 5); + return; + case "Digit7": + this.emit("f_key", 6); + return; + case "Digit8": + this.emit("f_key", 7); + return; + case "Digit9": + this.emit("f_key", 8); + return; + case "Digit0": + this.emit("f_key", 9); + 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 84d64c7d..377aef79 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 200f833d..9936c54b 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);