Perma delete shortcut, fix event modifiers

This commit is contained in:
Mo Bitar
2019-05-12 12:02:36 -05:00
parent f5e877e055
commit ff47f0065d
3 changed files with 37 additions and 7 deletions

View File

@@ -814,7 +814,7 @@ angular.module('app')
}
})
this.deleteKeyObserver = keyboardManager.addKeyObserver({
this.trashKeyObserver = keyboardManager.addKeyObserver({
key: KeyboardManager.KeyBackspace,
notElementIds: ["note-text-editor", "note-title-editor"],
modifiers: [KeyboardManager.KeyModifierMeta],
@@ -825,6 +825,18 @@ angular.module('app')
},
})
this.deleteKeyObserver = keyboardManager.addKeyObserver({
key: KeyboardManager.KeyBackspace,
notElementIds: ["note-text-editor", "note-title-editor"],
modifiers: [KeyboardManager.KeyModifierMeta, KeyboardManager.KeyModifierShift],
onKeyDown: (event) => {
event.preventDefault();
$timeout(() => {
this.deleteNote(true);
});
},
})
/*
Editor Customization
*/

View File

@@ -398,7 +398,6 @@ angular.module('app')
this.noteFilter = {text : ''};
this.onFilterEnter = function() {
// For Desktop, performing a search right away causes input to lose focus.
// We wait until user explicity hits enter before highlighting desktop search results.

View File

@@ -15,13 +15,19 @@ class KeyboardManager {
KeyboardManager.KeyEventDown = "KeyEventDown";
KeyboardManager.KeyEventUp = "KeyEventUp";
KeyboardManager.AllModifiers = [
KeyboardManager.KeyModifierShift,
KeyboardManager.KeyModifierCtrl,
KeyboardManager.KeyModifierMeta,
KeyboardManager.KeyModifierAlt
]
window.addEventListener('keydown', this.handleKeyDown.bind(this));
window.addEventListener('keyup', this.handleKeyUp.bind(this));
}
eventMatchesKeyAndModifiers(event, key, modifiers = []) {
for(let modifier of modifiers) {
modifiersForEvent(event) {
let eventModifiers = KeyboardManager.AllModifiers.filter((modifier) => {
// For a modifier like ctrlKey, must check both event.ctrlKey and event.key.
// That's because on keyup, event.ctrlKey would be false, but event.key == Control would be true.
let matches = (
@@ -31,7 +37,21 @@ class KeyboardManager {
((event.shiftKey || event.key == KeyboardManager.KeyModifierShift) && modifier === KeyboardManager.KeyModifierShift)
)
if(!matches) {
return matches;
})
return eventModifiers;
}
eventMatchesKeyAndModifiers(event, key, modifiers = []) {
let eventModifiers = this.modifiersForEvent(event);
if(eventModifiers.length != modifiers.length) {
return false;
}
for(let modifier of modifiers) {
if(!eventModifiers.includes(modifier)) {
return false;
}
}
@@ -41,7 +61,6 @@ class KeyboardManager {
return true;
}
return key == event.key;
}