forked from Archives/Athou_commafeed
spacebar support (fix #219)
This commit is contained in:
@@ -999,6 +999,63 @@ function($scope, $stateParams, $http, $route, $window, EntryService, SettingsSer
|
||||
});
|
||||
});
|
||||
|
||||
Mousetrap.bind('space', function(e) {
|
||||
if (!$scope.current) {
|
||||
$scope.$apply(function() {
|
||||
$scope.navigationMode = 'keyboard';
|
||||
openNextEntry(e);
|
||||
});
|
||||
} else if (!$scope.isOpen) {
|
||||
$scope.$apply(function() {
|
||||
$scope.navigationMode = 'keyboard';
|
||||
if ($scope.current) {
|
||||
openEntry($scope.current, e);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var docTop = $(window).scrollTop();
|
||||
var docBottom = docTop + $(window).height();
|
||||
|
||||
var elem = $('#entry_' + $scope.current.id);
|
||||
var elemTop = elem.offset().top;
|
||||
var elemBottom = elemTop + elem.height();
|
||||
|
||||
var bottomVisible = elemBottom < docBottom;
|
||||
if (bottomVisible) {
|
||||
$scope.$apply(function() {
|
||||
$scope.navigationMode = 'keyboard';
|
||||
openNextEntry(e);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('shift+space', function(e) {
|
||||
if (!$scope.current) {
|
||||
return;
|
||||
} else if (!$scope.isOpen) {
|
||||
$scope.$apply(function() {
|
||||
$scope.navigationMode = 'keyboard';
|
||||
if ($scope.current) {
|
||||
openEntry($scope.current, e);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var docTop = $(window).scrollTop();
|
||||
|
||||
var elem = $('#entry_' + $scope.current.id);
|
||||
var elemTop = elem.offset().top;
|
||||
|
||||
var topVisible = elemTop > docTop;
|
||||
if (topVisible) {
|
||||
$scope.$apply(function() {
|
||||
$scope.navigationMode = 'keyboard';
|
||||
openPreviousEntry(e);
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Mousetrap.bind('?', function(e) {
|
||||
$scope.$apply(function() {
|
||||
$scope.shortcutsModal = true;
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<div infinite-scroll="loadMoreEntries()" infinite-scroll-disabled="busy || !settingsService.settings.readingMode" infinite-scroll-distance="1" id="feed-accordion"
|
||||
ng-class="{'expanded' : settingsService.settings.viewMode == 'expanded' }">
|
||||
<div ng-show="message && errorCount > 10">${view.error_while_loading_feed} : {{message}}</div>
|
||||
<div ng-repeat="entry in entries" class="entry entry-font-size-{{font_size}}"
|
||||
<div ng-repeat="entry in entries" class="entry entry-font-size-{{font_size}}" id="entry_{{entry.id}}"
|
||||
scroll-to="navigationMode != 'scroll' && current == entry" scroll-to-force="navigationMode == 'keyboard'" scroll-to-offset="-50"
|
||||
on-scroll-middle="onScroll(entry)" on-scroll-middle-offset="50"
|
||||
ng-class="{unread: entry.read == false, current: current==entry, open: isOpen, closed: !isOpen }">
|
||||
|
||||
Reference in New Issue
Block a user