From 5adeba1a560985173974c9ac98c624093055d669 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Fri, 23 Jan 2015 11:52:54 +0100 Subject: fix #715 --- js/gui/KeyboardShortcuts.js | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'js/gui/KeyboardShortcuts.js') diff --git a/js/gui/KeyboardShortcuts.js b/js/gui/KeyboardShortcuts.js index f28ab8823..e7ae0defd 100644 --- a/js/gui/KeyboardShortcuts.js +++ b/js/gui/KeyboardShortcuts.js @@ -62,6 +62,17 @@ navigationArea.find('.active > a:visible').trigger('click'); }; + var tryReload = function (navigationArea, scrollArea) { + if (navigationArea.scrollTop() === 0) { + var pullToRefresh = scrollArea.find('.pull-to-refresh'); + if (!pullToRefresh.hasClass('show-pull-to-refresh')) { + pullToRefresh.addClass('show-pull-to-refresh'); + } else if (pullToRefresh.hasClass('done')) { + reloadFeed(navigationArea); + } + } + }; + var activateNavigationEntry = function (element, navigationArea) { element.children('a:visible').trigger('click'); scrollToNavigationElement(element, navigationArea.children('ul')); @@ -295,7 +306,8 @@ }; - var scrollToPreviousItem = function (scrollArea, expandItemInCompact) { + var scrollToPreviousItem = function (navigationArea, scrollArea, + expandItemInCompact) { var items = scrollArea.find('.item'); var jumped = false; @@ -308,6 +320,8 @@ // if there are no items before the current one if (previous.length > 0) { scrollToItem(scrollArea, previous, expandItemInCompact); + } else { + tryReload(navigationArea, scrollArea); } jumped = true; @@ -344,7 +358,8 @@ } else if ([75, 80, 37].indexOf(keyCode) >= 0) { event.preventDefault(); - scrollToPreviousItem(scrollArea, expandItemInCompact); + scrollToPreviousItem(navigationArea, scrollArea, + expandItemInCompact); // u } else if ([85].indexOf(keyCode) >= 0) { @@ -413,6 +428,9 @@ event.preventDefault(); nextFolder(navigationArea); + // page up + } else if ([33].indexOf(keyCode) >= 0) { + tryReload(navigationArea, scrollArea); } } -- cgit v1.2.3