mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-13 16:05:56 +00:00
Merge branch 'master' of git.fakecake.org:tt-rss
This commit is contained in:
@@ -60,14 +60,12 @@ define(["dojo/_base/declare"], function (declare) {
|
||||
|
||||
const hotkeys_map = App.getInitParam("hotkeys");
|
||||
const keycode = event.which;
|
||||
const keychar = String.fromCharCode(keycode).toLowerCase();
|
||||
const keychar = String.fromCharCode(keycode);
|
||||
|
||||
if (keycode == 27) { // escape and drop prefix
|
||||
this.hotkey_prefix = false;
|
||||
}
|
||||
|
||||
if (keycode == 16 || keycode == 17) return; // ignore lone shift / ctrl
|
||||
|
||||
if (!this.hotkey_prefix && hotkeys_map[0].indexOf(keychar) != -1) {
|
||||
|
||||
this.hotkey_prefix = keychar;
|
||||
@@ -87,13 +85,19 @@ define(["dojo/_base/declare"], function (declare) {
|
||||
|
||||
Element.hide("cmdline");
|
||||
|
||||
let hotkey_name = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")";
|
||||
let hotkey_name = "";
|
||||
|
||||
// ensure ^*char notation
|
||||
if (event.shiftKey) hotkey_name = "*" + hotkey_name;
|
||||
if (event.ctrlKey) hotkey_name = "^" + hotkey_name;
|
||||
if (event.altKey) hotkey_name = "+" + hotkey_name;
|
||||
if (event.metaKey) hotkey_name = "%" + hotkey_name;
|
||||
if (event.type == "keydown") {
|
||||
hotkey_name = "(" + keycode + ")";
|
||||
|
||||
// ensure ^*char notation
|
||||
if (event.shiftKey) hotkey_name = "*" + hotkey_name;
|
||||
if (event.ctrlKey) hotkey_name = "^" + hotkey_name;
|
||||
if (event.altKey) hotkey_name = "+" + hotkey_name;
|
||||
if (event.metaKey) hotkey_name = "%" + hotkey_name;
|
||||
} else {
|
||||
hotkey_name = keychar ? keychar : "(" + keycode + ")";
|
||||
}
|
||||
|
||||
const hotkey_full = this.hotkey_prefix ? this.hotkey_prefix + " " + hotkey_name : hotkey_name;
|
||||
this.hotkey_prefix = false;
|
||||
|
||||
@@ -196,6 +196,7 @@ define(["dojo/_base/declare"], function (declare) {
|
||||
App.setLoadingProgress(50);
|
||||
|
||||
document.onkeydown = (event) => { return App.hotkeyHandler(event) };
|
||||
document.onkeypress = (event) => { return App.hotkeyHandler(event) };
|
||||
window.onresize = () => { Headlines.scrollHandler(); }
|
||||
|
||||
if (!this.getActive()) {
|
||||
|
||||
@@ -78,6 +78,7 @@ require(["dojo/_base/kernel",
|
||||
this.enableCsrfSupport();
|
||||
|
||||
document.onkeydown = (event) => { return App.hotkeyHandler(event) };
|
||||
document.onkeypress = (event) => { return App.hotkeyHandler(event) };
|
||||
App.setLoadingProgress(50);
|
||||
Notify.close();
|
||||
|
||||
|
||||
@@ -206,6 +206,10 @@ require(["dojo/_base/kernel",
|
||||
hotkeyHandler(event) {
|
||||
if (event.target.nodeName == "INPUT" || event.target.nodeName == "TEXTAREA") return;
|
||||
|
||||
// Arrow buttons and escape are not reported via keypress, handle them via keydown.
|
||||
// escape = 27, left = 37, up = 38, right = 39, down = 40
|
||||
if (event.type == "keydown" && event.which != 27 && (event.which < 37 || event.which > 40)) return;
|
||||
|
||||
const action_name = App.keyeventToAction(event);
|
||||
|
||||
if (action_name) {
|
||||
|
||||
Reference in New Issue
Block a user