From c22580b55f959c8deaebf9aa3a7895c7795df75d Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Wed, 27 Feb 2013 22:48:43 +0400 Subject: [PATCH] implement classic next/prev article movement behavior, bind to ctrl-arrows --- include/functions.php | 4 ++++ js/tt-rss.js | 6 ++++++ js/viewfeed.js | 9 +++++---- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/include/functions.php b/include/functions.php index 979a2876..8db72f56 100644 --- a/include/functions.php +++ b/include/functions.php @@ -1859,6 +1859,8 @@ "prev_feed" => __("Open previous feed"), "next_article" => __("Open next article"), "prev_article" => __("Open previous article"), + "next_article_noscroll" => __("Open next article (don't scroll long articles)"), + "prev_article_noscroll" => __("Open previous article (don't scroll long articles)"), "search_dialog" => __("Show search dialog")), __("Article") => array( "toggle_mark" => __("Toggle starred"), @@ -1919,6 +1921,8 @@ "p" => "prev_article", "(38)|up" => "prev_article", "(40)|down" => "next_article", + "^(38)|Ctrl-up" => "prev_article_noscroll", + "^(40)|Ctrl-down" => "next_article_noscroll", "(191)|/" => "search_dialog", // "article" => array( "s" => "toggle_mark", diff --git a/js/tt-rss.js b/js/tt-rss.js index 530cb293..7462d933 100644 --- a/js/tt-rss.js +++ b/js/tt-rss.js @@ -604,6 +604,12 @@ function hotkey_handler(e) { case "prev_article": moveToPost('prev'); return false; + case "next_article_noscroll": + moveToPost('next', true); + return false; + case "prev_article_noscroll": + moveToPost('prev', true); + return false; case "search_dialog": search(); return ; diff --git a/js/viewfeed.js b/js/viewfeed.js index 6f88f7ea..20a3e2b1 100644 --- a/js/viewfeed.js +++ b/js/viewfeed.js @@ -514,7 +514,7 @@ function togglePub(id, client_only, no_effects, note) { } } -function moveToPost(mode) { +function moveToPost(mode, noscroll) { try { @@ -555,7 +555,7 @@ function moveToPost(mode) { var article = $("RROW-" + active_post_id); var ctr = $("headlines-frame"); - if (article && article.offsetTop + article.offsetHeight > + if (!noscroll && article && article.offsetTop + article.offsetHeight > ctr.scrollTop + ctr.offsetHeight) { scrollArticle(ctr.offsetHeight/2); @@ -580,9 +580,10 @@ function moveToPost(mode) { var prev_article = $("RROW-" + prev_id); var ctr = $("headlines-frame"); - if (article && article.offsetTop < ctr.scrollTop) { + if (!noscroll && article && article.offsetTop < ctr.scrollTop) { scrollArticle(-ctr.offsetHeight/2); - } else if (prev_article && prev_article.offsetTop < ctr.scrollTop) { + } else if (!noscroll && prev_article && + prev_article.offsetTop < ctr.scrollTop) { cdmExpandArticle(prev_id); scrollArticle(-ctr.offsetHeight/2); } else if (prev_id) { -- 2.39.5