only bind up/down in 3 panel mode

This commit is contained in:
Andrew Dolgov 2020-05-23 08:53:18 +03:00
parent ebb373987a
commit 19893d33e3
2 changed files with 22 additions and 11 deletions

View File

@ -1098,6 +1098,8 @@
return $hotkeys;
}
// {3} - 3 panel mode only
// {C} - combined mode only
function get_hotkeys_map() {
$hotkeys = array(
"k" => "next_feed",
@ -1108,8 +1110,8 @@
"P" => "article_page_up",
"*(33)|Shift+PgUp" => "article_page_up",
"*(34)|Shift+PgDn" => "article_page_down",
"(38)|Up" => "prev_article_or_scroll",
"(40)|Down" => "next_article_or_scroll",
"{3}(38)|Up" => "prev_article_or_scroll",
"{3}(40)|Down" => "next_article_or_scroll",
"*(38)|Shift+Up" => "article_scroll_up",
"*(40)|Shift+Down" => "article_scroll_down",
"^(38)|Ctrl+Up" => "prev_article_noscroll",

View File

@ -134,6 +134,17 @@ define(["dojo/_base/declare"], function (declare) {
}
},
getActionByHotkeySequence: function (sequence) {
const hotkeys_map = App.getInitParam("hotkeys");
for (const seq in hotkeys_map[1]) {
if (hotkeys_map[1].hasOwnProperty(seq)) {
if (seq == sequence) {
return hotkeys_map[1][seq];
}
}
}
},
keyeventToAction: function(event) {
const hotkeys_map = App.getInitParam("hotkeys");
@ -177,18 +188,16 @@ define(["dojo/_base/declare"], function (declare) {
hotkey_name = keychar ? keychar : "(" + keycode + ")";
}
const hotkey_full = this.hotkey_prefix ? this.hotkey_prefix + " " + hotkey_name : hotkey_name;
let hotkey_full = this.hotkey_prefix ? this.hotkey_prefix + " " + hotkey_name : hotkey_name;
this.hotkey_prefix = false;
let action_name = false;
let action_name = this.getActionByHotkeySequence(hotkey_full);
for (const sequence in hotkeys_map[1]) {
if (hotkeys_map[1].hasOwnProperty(sequence)) {
if (sequence == hotkey_full) {
action_name = hotkeys_map[1][sequence];
break;
}
}
// check for mode-specific hotkey
if (!action_name) {
hotkey_full = (App.isCombinedMode() ? "{C}" : "{3}") + hotkey_full;
action_name = this.getActionByHotkeySequence(hotkey_full);
}
console.log('keyeventToAction', hotkey_full, '=>', action_name);