mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-08 22:18:28 +03:00
This commit is contained in:
parent
ac535b1d03
commit
ee23a5553e
9 changed files with 46 additions and 37 deletions
|
|
@ -273,7 +273,7 @@ class Selector {
|
|||
}
|
||||
});
|
||||
|
||||
shortcuts.add('enter', '', keyScope, () => {
|
||||
shortcuts.add('enter,open', '', keyScope, () => {
|
||||
const focused = this.focusedItem();
|
||||
if (focused && !focused.selected()) {
|
||||
this.actionClick(focused);
|
||||
|
|
|
|||
|
|
@ -1171,7 +1171,7 @@ class ComposePopupView extends AbstractViewNext {
|
|||
return false;
|
||||
});
|
||||
|
||||
shortcuts.add('escape', '', KeyState.Compose, () => {
|
||||
shortcuts.add('escape,close', '', KeyState.Compose, () => {
|
||||
this.skipCommand();
|
||||
return false;
|
||||
});
|
||||
|
|
@ -1185,6 +1185,10 @@ class ComposePopupView extends AbstractViewNext {
|
|||
this.saveCommand();
|
||||
return false;
|
||||
});
|
||||
shortcuts.add('save', KeyState.Compose, () => {
|
||||
this.saveCommand();
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
if (Settings.app('allowCtrlEnterOnCompose')) {
|
||||
|
|
@ -1193,11 +1197,13 @@ class ComposePopupView extends AbstractViewNext {
|
|||
return false;
|
||||
});
|
||||
}
|
||||
shortcuts.add('mailsend', '', KeyState.Compose, () => {
|
||||
this.sendCommand();
|
||||
return false;
|
||||
});
|
||||
|
||||
shortcuts.add('escape', 'shift', KeyState.Compose, () => {
|
||||
if (this.modalVisibility()) {
|
||||
this.tryToClosePopup();
|
||||
}
|
||||
shortcuts.add('escape,close', 'shift', KeyState.Compose, () => {
|
||||
this.modalVisibility() && this.tryToClosePopup();
|
||||
return false;
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -89,7 +89,7 @@ class AbstractSystemDropDownUserView extends AbstractViewNext {
|
|||
});
|
||||
|
||||
// shortcuts help
|
||||
shortcuts.add('/', 'shift', [KeyState.MessageList, KeyState.MessageView, KeyState.Settings], () => {
|
||||
shortcuts.add('?,f1,help', '', [KeyState.MessageList, KeyState.MessageView, KeyState.Settings], () => {
|
||||
if (this.viewModelVisible) {
|
||||
showScreenPopup(require('View/Popup/KeyboardShortcutsHelp'));
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -145,7 +145,7 @@ class FolderListMailBoxUserView extends AbstractViewNext {
|
|||
return false;
|
||||
});
|
||||
|
||||
shortcuts.add('enter', '', KeyState.FolderList, () => {
|
||||
shortcuts.add('enter,open', '', KeyState.FolderList, () => {
|
||||
const item = qs('.b-folders .e-item .e-link:not(.hidden).focused');
|
||||
if (item) {
|
||||
AppStore.focusedState(Focused.MessageList);
|
||||
|
|
|
|||
|
|
@ -728,7 +728,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
|
|||
}
|
||||
|
||||
initShortcuts() {
|
||||
shortcuts.add('enter', '', KeyState.MessageList, () => {
|
||||
shortcuts.add('enter,open', '', KeyState.MessageList, () => {
|
||||
if (this.message() && this.useAutoSelect()) {
|
||||
dispatchEvent(new CustomEvent('mailbox.message-view.toggle-full-screen'));
|
||||
return false;
|
||||
|
|
@ -772,7 +772,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
|
|||
|
||||
if (Settings.capa(Capa.Composer)) {
|
||||
// write/compose (open compose popup)
|
||||
shortcuts.add('w,c', '', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
shortcuts.add('w,c,new', '', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
showScreenPopup(require('View/Popup/Compose'));
|
||||
return false;
|
||||
});
|
||||
|
|
@ -827,7 +827,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
|
|||
}
|
||||
|
||||
if (Settings.capa(Capa.Composer)) {
|
||||
shortcuts.add('f', 'shift', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
shortcuts.add('f,mailforward', 'shift', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
this.multyForwardCommand();
|
||||
return false;
|
||||
});
|
||||
|
|
|
|||
|
|
@ -535,13 +535,13 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
|
|||
shortcuts.add('escape,backspace', '', KeyState.MessageView, this.escShortcuts.bind(this));
|
||||
|
||||
// fullscreen
|
||||
shortcuts.add('enter', '', KeyState.MessageView, () => {
|
||||
shortcuts.add('enter,open', '', KeyState.MessageView, () => {
|
||||
this.toggleFullScreen();
|
||||
return false;
|
||||
});
|
||||
|
||||
// reply
|
||||
shortcuts.add('r', '', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
shortcuts.add('r,mailreply', '', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
if (MessageStore.message()) {
|
||||
this.replyCommand();
|
||||
return false;
|
||||
|
|
@ -555,12 +555,18 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
|
|||
this.replyAllCommand();
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
});
|
||||
shortcuts.add('mailreply', 'shift', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
if (MessageStore.message()) {
|
||||
this.replyAllCommand();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
// forward
|
||||
shortcuts.add('f', '', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
shortcuts.add('f,mailforward', '', [KeyState.MessageList, KeyState.MessageView], () => {
|
||||
if (MessageStore.message()) {
|
||||
this.forwardCommand();
|
||||
return false;
|
||||
|
|
@ -598,10 +604,8 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
|
|||
});
|
||||
|
||||
// print
|
||||
shortcuts.add('p', 'meta', [KeyState.MessageView, KeyState.MessageList], () => {
|
||||
if (this.message()) {
|
||||
this.message().printMessage();
|
||||
}
|
||||
shortcuts.add('p,printscreen', 'meta', [KeyState.MessageView, KeyState.MessageList], () => {
|
||||
this.message() && this.message().printMessage();
|
||||
return false;
|
||||
});
|
||||
|
||||
|
|
|
|||
|
|
@ -33,10 +33,10 @@ const
|
|||
|
||||
keydown = event => {
|
||||
const key = (event.key||event.code||'').toLowerCase();
|
||||
if (scope[key] && win.shortcuts.filter(event)) {
|
||||
if (scope[key] && win.shortcuts.filter(event.target)) {
|
||||
fire(scope[key], event);
|
||||
}
|
||||
if (!event.defaultPrevented && _scope !== 'all' && _scopes.all[key] && win.shortcuts.filter(event)) {
|
||||
if (!event.defaultPrevented && _scope !== 'all' && _scopes.all[key] && win.shortcuts.filter(event.target)) {
|
||||
fire(_scopes.all[key], event);
|
||||
}
|
||||
};
|
||||
|
|
@ -45,8 +45,6 @@ let
|
|||
scope = {},
|
||||
_scope = 'all';
|
||||
|
||||
doc.addEventListener('keydown', keydown);
|
||||
|
||||
win.shortcuts = {
|
||||
on: () => doc.addEventListener('keydown', keydown),
|
||||
off: () => doc.removeEventListener('keydown', keydown),
|
||||
|
|
@ -81,8 +79,7 @@ win.shortcuts = {
|
|||
getScope: () => _scope,
|
||||
getMetaKey: () => meta,
|
||||
// ignore keydown in any element that supports keyboard input
|
||||
filter: event => !(event.target.matches
|
||||
&& (event.target.matches('input,select,textarea') || event.target.closest('[contenteditable]')))
|
||||
filter: node => !(!node.closest || node.closest('input,select,textarea,[contenteditable]'))
|
||||
};
|
||||
|
||||
win.shortcuts.on();
|
||||
|
|
|
|||
|
|
@ -25,11 +25,11 @@
|
|||
<table class="table table-striped table-bordered">
|
||||
<tbody>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_OPEN_USER_DROPDOWN"></td><td>` (tilde)</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_REPLY"></td><td>R</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_REPLY_ALL"></td><td>A</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_FORWARD"></td><td>F</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_FORWARD_MULTIPLY"></td><td>Shift + F</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_HELP"></td><td>?, Shift + /</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_REPLY"></td><td>R, Reply</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_REPLY_ALL"></td><td>A, Shift + Reply</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_FORWARD"></td><td>F, Fwd</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_FORWARD_MULTIPLY"></td><td>Shift + F, Shift + Fwd</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_HELP"></td><td>F1, Help</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
|
@ -59,11 +59,11 @@
|
|||
|
||||
<table class="table table-striped table-bordered">
|
||||
<tbody>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_TOGGLE"></td><td>Enter</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_FULLSCREEN_TOGGLE"></td><td>Enter, Open</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_BLOCKQUOTES_TOGGLE"></td><td>B</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_PRINT"></td><td>Ctrl + P, ⌘ + P</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_EXIT_FULLSCREEN"></td><td>Esc</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_MESSAGE"></td><td>Esc</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_EXIT_FULLSCREEN"></td><td>Esc, Close</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_MESSAGE"></td><td>Esc, Close</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_SWITCH_TO_LIST"></td><td>Tab, Shift + Tab, Esc</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -73,12 +73,12 @@
|
|||
|
||||
<table class="table table-striped table-bordered">
|
||||
<tbody>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_OPEN_COMPOSE_POPUP"></td><td>W, C</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_OPEN_COMPOSE_POPUP"></td><td>W, C, New</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_OPEN_IDENTITIES_DROPDOWN"></td><td>` (tilde), Ctrl + `, ⌘ + `</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_SAVE_MESSAGE"></td><td>Ctrl + S, ⌘ + S</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_SAVE_MESSAGE"></td><td>Ctrl + S, ⌘ + S, Save</td></tr>
|
||||
<!--<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_SEND_MESSAGE"></td><td>Ctrl + Enter, ⌘ + Enter</td></tr>-->
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_MINIMIZE_COMPOSE_POPUP"></td><td>Esc</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_COMPOSE"></td><td>Shift + Esc</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_MINIMIZE_COMPOSE_POPUP"></td><td>Esc, Close</td></tr>
|
||||
<tr><td class="i18n" data-i18n="SHORTCUTS_HELP/LABEL_CLOSE_COMPOSE"></td><td>Shift + Esc, Shift + Close</td></tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
|
|
|||
2
vendors/squire/build/squire-raw.js
vendored
2
vendors/squire/build/squire-raw.js
vendored
|
|
@ -1675,7 +1675,9 @@ keyHandlers[ ctrlKey + '[' ] = changeIndentationLevel( 'decrease' );
|
|||
keyHandlers[ ctrlKey + ']' ] = changeIndentationLevel( 'increase' );
|
||||
keyHandlers[ ctrlKey + 'd' ] = mapKeyTo( 'toggleCode' );
|
||||
keyHandlers[ ctrlKey + 'y' ] = mapKeyTo( 'redo' );
|
||||
keyHandlers[ 'redo' ] = mapKeyTo( 'redo' );
|
||||
keyHandlers[ ctrlKey + 'z' ] = mapKeyTo( 'undo' );
|
||||
keyHandlers[ 'undo' ] = mapKeyTo( 'undo' );
|
||||
keyHandlers[ ctrlKey + 'shift-z' ] = mapKeyTo( 'redo' );
|
||||
|
||||
let fontSizes = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue