implement classic next/prev article movement behavior, bind to ctrl-arrows

This commit is contained in:
Andrew Dolgov 2013-02-27 22:48:43 +04:00
parent 104e5c6557
commit c22580b55f
3 changed files with 15 additions and 4 deletions

View File

@ -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",

View File

@ -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 ;

View File

@ -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) {