mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-01-31 12:30:14 +08:00
e7868df1ad
Summary: toolbar popup displays restore caret protection on contenteditable BAD - can't use cursor saving and restoring with react :( _findNode works saves and restores cursor state contenteditable fixes to support cursor comments on cursor initial undo manager extract undo manager and move up in stack make undo manager a mixin adding selection snapshots in composer fixes in undo manager selection saves selection states properly move UndoManager and fix draft selection state can now select backwards selection works backwards and click not overridden change bold class to allow for bolding and unbolding styling of hover component can set links in composer bold and italic clicking works. text seleciton works show link modal on hover selection fixes Test Plan: TODO Reviewers: bengotow Reviewed By: bengotow Differential Revision: https://review.inboxapp.com/D1249
244 lines
5.7 KiB
Text
244 lines
5.7 KiB
Text
# Email-specific core key-mappings
|
|
# All platforms are put here to consolidate custom actions and to prevent
|
|
# duplication in 3 files.
|
|
#
|
|
# TODO let the user pick whether they want to use Gmail, Mac Mail, or
|
|
# Outlook keymappings
|
|
'body':
|
|
'c' : 'application:new-message' # Gmail
|
|
'cmd-n' : 'application:new-message' # Mac mail
|
|
'ctrl-n': 'application:new-message' # Outlook
|
|
|
|
'k' : 'application:previous-message' # Gmail
|
|
'up': 'application:previous-message' # Mac mail
|
|
|
|
'j' : 'application:next-message' # Gmail
|
|
'down': 'application:next-message' # Mac mail
|
|
|
|
']' : 'application:archive-and-previous' # Gmail
|
|
|
|
'[' : 'application:archive-thread' # Gmail
|
|
'e' : 'application:archive-thread' # Gmail
|
|
'delete' : 'application:archive-thread' # Mac mail
|
|
'backspace': 'application:archive-thread' # Outlook
|
|
|
|
'r' : 'application:reply' # Gmail
|
|
'cmd-r' : 'application:reply' # Mac mail
|
|
'ctrl-r': 'application:reply' # Outlook
|
|
|
|
'a' : 'application:reply-all' # Gmail
|
|
'cmd-R' : 'application:reply-all' # Mac mail
|
|
'ctrl-R': 'application:reply-all' # Outlook
|
|
|
|
'f' : 'application:forward' # Gmail
|
|
'cmd-F' : 'application:forward' # Mac mail
|
|
'ctrl-F': 'application:forward' # Outlook
|
|
|
|
'cmd-alt-f': 'application:focus-search' # Mac mail
|
|
|
|
'cmd-D': 'application:send-message' # Mac mail
|
|
|
|
# Default cross-platform core behaviors
|
|
'left': 'core:move-left'
|
|
'right': 'core:move-right'
|
|
'enter': 'core:confirm'
|
|
'escape': 'core:cancel'
|
|
'shift-up': 'core:select-up'
|
|
'shift-down': 'core:select-down'
|
|
'shift-left': 'core:select-left'
|
|
'shift-right': 'core:select-right'
|
|
'shift-pageup': 'core:select-page-up'
|
|
'shift-pagedown': 'core:select-page-down'
|
|
'delete': 'core:delete'
|
|
'shift-delete': 'core:cut'
|
|
|
|
# Inputs are native by default.
|
|
'body input, body textarea, body *[contenteditable]':
|
|
'up': 'native!'
|
|
'left': 'native!'
|
|
'down': 'native!'
|
|
'right': 'native!'
|
|
'cmd-up': 'native!'
|
|
'cmd-left': 'native!'
|
|
'cmd-down': 'native!'
|
|
'cmd-right': 'native!'
|
|
'ctrl-up': 'native!'
|
|
'ctrl-left': 'native!'
|
|
'ctrl-down': 'native!'
|
|
'ctrl-right': 'native!'
|
|
'shift-up': 'native!'
|
|
'shift-left': 'native!'
|
|
'shift-down': 'native!'
|
|
'shift-right': 'native!'
|
|
'escape': 'native!'
|
|
'pageup': 'native!'
|
|
'pagedown': 'native!'
|
|
'shift-pageup': 'native!'
|
|
'shift-pagedown': 'native!'
|
|
'enter': 'native!'
|
|
'cmd-enter': 'native!'
|
|
'ctrl-enter': 'native!'
|
|
'shift-enter': 'native!'
|
|
'tab': 'core:focus-next'
|
|
'shift-tab': 'core:focus-previous'
|
|
'backspace': 'native!'
|
|
'shift-backspace': 'native!'
|
|
'delete': 'native!'
|
|
'shift-delete': 'native!'
|
|
'cmd-y': 'native!'
|
|
'cmd-z': 'native!'
|
|
'cmd-Z': 'native!'
|
|
'cmd-x': 'native!'
|
|
'cmd-X': 'native!'
|
|
'cmd-c': 'native!'
|
|
'cmd-C': 'native!'
|
|
'cmd-v': 'native!'
|
|
'cmd-V': 'native!'
|
|
'cmd-a': 'native!'
|
|
'cmd-A': 'native!'
|
|
'cmd-b': 'native!'
|
|
'cmd-i': 'native!'
|
|
'cmd-u': 'native!'
|
|
'ctrl-y': 'native!'
|
|
'ctrl-z': 'native!'
|
|
'ctrl-Z': 'native!'
|
|
'ctrl-x': 'native!'
|
|
'ctrl-X': 'native!'
|
|
'ctrl-c': 'native!'
|
|
'ctrl-C': 'native!'
|
|
'ctrl-v': 'native!'
|
|
'ctrl-V': 'native!'
|
|
'ctrl-a': 'native!'
|
|
'ctrl-A': 'native!'
|
|
'ctrl-b': 'native!'
|
|
'ctrl-i': 'native!'
|
|
'ctrl-u': 'native!'
|
|
'a': 'native!'
|
|
'b': 'native!'
|
|
'c': 'native!'
|
|
'd': 'native!'
|
|
'e': 'native!'
|
|
'f': 'native!'
|
|
'g': 'native!'
|
|
'h': 'native!'
|
|
'i': 'native!'
|
|
'j': 'native!'
|
|
'k': 'native!'
|
|
'l': 'native!'
|
|
'm': 'native!'
|
|
'n': 'native!'
|
|
'o': 'native!'
|
|
'p': 'native!'
|
|
'q': 'native!'
|
|
'r': 'native!'
|
|
's': 'native!'
|
|
't': 'native!'
|
|
'u': 'native!'
|
|
'v': 'native!'
|
|
'w': 'native!'
|
|
'x': 'native!'
|
|
'y': 'native!'
|
|
'z': 'native!'
|
|
'A': 'native!'
|
|
'B': 'native!'
|
|
'C': 'native!'
|
|
'D': 'native!'
|
|
'E': 'native!'
|
|
'F': 'native!'
|
|
'G': 'native!'
|
|
'H': 'native!'
|
|
'I': 'native!'
|
|
'J': 'native!'
|
|
'K': 'native!'
|
|
'L': 'native!'
|
|
'M': 'native!'
|
|
'N': 'native!'
|
|
'O': 'native!'
|
|
'P': 'native!'
|
|
'Q': 'native!'
|
|
'R': 'native!'
|
|
'S': 'native!'
|
|
'T': 'native!'
|
|
'U': 'native!'
|
|
'V': 'native!'
|
|
'W': 'native!'
|
|
'X': 'native!'
|
|
'Y': 'native!'
|
|
'Z': 'native!'
|
|
'1': 'native!'
|
|
'2': 'native!'
|
|
'3': 'native!'
|
|
'4': 'native!'
|
|
'5': 'native!'
|
|
'6': 'native!'
|
|
'7': 'native!'
|
|
'8': 'native!'
|
|
'9': 'native!'
|
|
'0': 'native!'
|
|
'~': 'native!'
|
|
'!': 'native!'
|
|
'@': 'native!'
|
|
'#': 'native!'
|
|
'$': 'native!'
|
|
'%': 'native!'
|
|
'^': 'native!'
|
|
'&': 'native!'
|
|
'*': 'native!'
|
|
'(': 'native!'
|
|
')': 'native!'
|
|
'-': 'native!'
|
|
'_': 'native!'
|
|
'=': 'native!'
|
|
'+': 'native!'
|
|
'[': 'native!'
|
|
'{': 'native!'
|
|
']': 'native!'
|
|
'}': 'native!'
|
|
'\\': 'native!'
|
|
'|': 'native!'
|
|
';': 'native!'
|
|
':': 'native!'
|
|
'\'': 'native!'
|
|
'"': 'native!'
|
|
'<': 'native!'
|
|
',': 'native!'
|
|
'>': 'native!'
|
|
'.': 'native!'
|
|
'?': 'native!'
|
|
'/': 'native!'
|
|
|
|
# For menus
|
|
'body .menu, body .menu, body .menu input':
|
|
'up': 'menu:move-up'
|
|
'down': 'menu:move-down'
|
|
'enter': 'menu:enter'
|
|
|
|
# For Popover Component
|
|
'body .popover-container':
|
|
'escape': 'popover:close'
|
|
|
|
# Tokenizing Text fields
|
|
|
|
# The default state. There's no input in the text field and there are no
|
|
# autocomplete suggestions
|
|
'.tokenizing-field input':
|
|
'backspace': 'native!'
|
|
'tab': 'native!'
|
|
',': 'native!'
|
|
|
|
'.tokenizing-field.empty input':
|
|
'backspace': 'tokenizing-field:remove'
|
|
|
|
# When we found a name to suggest
|
|
'.tokenizing-field.has-suggestions input':
|
|
',': 'tokenizing-field:add-suggestion'
|
|
'tab': 'tokenizing-field:add-suggestion'
|
|
'enter': 'tokenizing-field:add-suggestion'
|
|
'escape': 'tokenizing-field:cancel'
|
|
|
|
# When there is some text in the input field, but we have no suggestion
|
|
'.tokenizing-field:not(.has-suggestions) input':
|
|
'tab': 'native!'
|
|
',': 'tokenizing-field:add-input-value'
|
|
'enter': 'tokenizing-field:add-input-value'
|
|
'escape': 'tokenizing-field:cancel'
|