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, key: KeyboardManager.KeyBackspace,
notElementIds: ["note-text-editor", "note-title-editor"], notElementIds: ["note-text-editor", "note-title-editor"],
modifiers: [KeyboardManager.KeyModifierMeta], 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 Editor Customization
*/ */

View File

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

View File

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