diff --git a/include/functions.php b/include/functions.php index e031ac8c4..a7c55f486 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1041,10 +1041,10 @@ __("Navigation") => array( "next_feed" => __("Open next feed"), "prev_feed" => __("Open previous feed"), - "next_article" => __("Open next article (scroll long articles)"), - "prev_article" => __("Open previous article (scroll long articles)"), - "next_article_page" => __("Open next article (scroll down page)"), - "prev_article_page" => __("Open previous article (scroll up page)"), + "next_article_or_scroll" => __("Open next article (in combined mode, scroll down)"), + "prev_article_or_scroll" => __("Open previous article (in combined mode, scroll up)"), + "next_article_page" => __("Scroll article by one page down"), + "prev_article_page" => __("Scroll article by one page up"), "next_article_noscroll" => __("Open next article"), "prev_article_noscroll" => __("Open previous article"), "next_article_noexpand" => __("Move to next article (don't expand or mark read)"), @@ -1116,14 +1116,14 @@ $hotkeys = array( "k" => "next_feed", "j" => "prev_feed", - "n" => "next_article", - "p" => "prev_article", + "n" => "next_article_noscroll", + "p" => "prev_article_noscroll", //"(33)|PageUp" => "prev_article_page", //"(34)|PageDown" => "next_article_page", - "*(33)|Shift+PageUp" => "article_page_up", - "*(34)|Shift+PageDown" => "article_page_down", - "(38)|Up" => "prev_article", - "(40)|Down" => "next_article", + "*(33)|Shift+PgUp" => "article_page_up", + "*(34)|Shift+PgDn" => "article_page_down", + "(38)|Up" => "prev_article_or_scroll", + "(40)|Down" => "next_article_or_scroll", "*(38)|Shift+Up" => "article_scroll_up", "*(40)|Shift+Down" => "article_scroll_down", "^(38)|Ctrl+Up" => "prev_article_noscroll", diff --git a/js/Article.js b/js/Article.js index 11e0305a7..08b565695 100644 --- a/js/Article.js +++ b/js/Article.js @@ -329,13 +329,7 @@ define(["dojo/_base/declare"], function (declare) { return 0; }, scrollByPages: function (page_offset, event) { - let elem; - - if (!App.isCombinedMode()) { - elem = $("content-insert"); - } else { - elem = $("headlines-frame"); - } + const elem = App.isCombinedMode() ? $("headlines-frame") : $("content-insert"); const offset = elem.offsetHeight * page_offset * 0.99; @@ -343,13 +337,7 @@ define(["dojo/_base/declare"], function (declare) { }, scroll: function (offset, event) { - let elem; - - if (!App.isCombinedMode()) { - elem = $("content-insert"); - } else { - elem = $("headlines-frame"); - } + const elem = App.isCombinedMode() ? $("headlines-frame") : $("content-insert"); if (event && event.repeat) { elem.addClassName("forbid-smooth-scroll"); diff --git a/js/tt-rss.js b/js/tt-rss.js index 744034f0c..b127376c7 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -277,10 +277,10 @@ require(["dojo/_base/kernel", if (rv) Feeds.open({feed: rv[0], is_cat: rv[1], delayed: true}) }; - this.hotkey_actions["next_article"] = function (event) { + this.hotkey_actions["next_article_or_scroll"] = function (event) { Headlines.move('next', {event: event}); }; - this.hotkey_actions["prev_article"] = function (event) { + this.hotkey_actions["prev_article_or_scroll"] = function (event) { Headlines.move('prev', {event: event}); }; this.hotkey_actions["next_article_noscroll"] = function (event) { @@ -325,10 +325,16 @@ require(["dojo/_base/kernel", Headlines.catchupRelativeTo(0); }; this.hotkey_actions["article_scroll_down"] = function (event) { - Article.scroll(80, event); + const ctr = App.isCombinedMode() ? $("headlines-frame") : $("content-insert"); + + if (ctr) + Article.scroll(ctr.offsetHeight / 2, event); }; this.hotkey_actions["article_scroll_up"] = function (event) { - Article.scroll(-80, event); + const ctr = App.isCombinedMode() ? $("headlines-frame") : $("content-insert"); + + if (ctr) + Article.scroll(-ctr.offsetHeight / 2, event); }; this.hotkey_actions["next_article_page"] = function (event) { Headlines.scrollByPages(1, event); @@ -375,7 +381,7 @@ require(["dojo/_base/kernel", Headlines.select('none'); }; this.hotkey_actions["feed_refresh"] = function () { - if (Feeds.getActive() != undefined) { + if (typeof Feeds.getActive() != "undefined") { Feeds.open({feed: Feeds.getActive(), is_cat: Feeds.activeIsCat()}); } }; @@ -405,7 +411,7 @@ require(["dojo/_base/kernel", CommonDialogs.editFeed(Feeds.getActive()); }; this.hotkey_actions["feed_catchup"] = function () { - if (Feeds.getActive() != undefined) { + if (typeof Feeds.getActive() != "undefined") { Feeds.catchupCurrent(); } };