filemanager: Skip keyboard actions if modal dialogs are open

This commit is contained in:
Johannes Zellner
2021-03-16 18:17:38 +01:00
parent 0abf1e76d4
commit 10d1bb861a
+8
View File
@@ -1018,6 +1018,10 @@ app.controller('FileManagerController', ['$scope', '$translate', '$timeout', 'Cl
});
});
function isModalVisible() {
return !!document.getElementsByClassName('modal in').length;
}
// handle save shortcuts
window.addEventListener('keydown', function (event) {
if((navigator.platform.match('Mac') ? event.metaKey : event.ctrlKey) && event.key === 's') {
@@ -1028,23 +1032,27 @@ app.controller('FileManagerController', ['$scope', '$translate', '$timeout', 'Cl
} else if((navigator.platform.match('Mac') ? event.metaKey : event.ctrlKey) && event.key === 'c') {
if ($scope.view === 'textEditor') return;
if ($scope.selected.length === 0) return;
if (isModalVisible()) return;
event.preventDefault();
$scope.$apply($scope.actionCopy);
} else if((navigator.platform.match('Mac') ? event.metaKey : event.ctrlKey) && event.key === 'x') {
if ($scope.view === 'textEditor') return;
if ($scope.selected.length === 0) return;
if (isModalVisible()) return;
event.preventDefault();
$scope.$apply($scope.actionCut);
} else if((navigator.platform.match('Mac') ? event.metaKey : event.ctrlKey) && event.key === 'v') {
if ($scope.view === 'textEditor') return;
if ($scope.clipboard.length === 0) return;
if (isModalVisible()) return;
event.preventDefault();
$scope.$apply($scope.actionPaste);
} else if((navigator.platform.match('Mac') ? event.metaKey : event.ctrlKey) && event.key === 'a') {
if ($scope.view === 'textEditor') return;
if (isModalVisible()) return;
event.preventDefault();
$scope.$apply($scope.actionSelectAll);