summaryrefslogtreecommitdiffstats
path: root/js/gui/KeyboardShortcuts.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/gui/KeyboardShortcuts.js')
-rw-r--r--js/gui/KeyboardShortcuts.js22
1 files changed, 20 insertions, 2 deletions
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);
}
}