spacebar support (fix #219)

This commit is contained in:
Athou
2013-06-28 10:54:42 +02:00
parent 0b017a0732
commit 5ee1caa9b8
2 changed files with 58 additions and 1 deletions

View File

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