diff options
author | 2020-06-28 00:15:04 -0400 | |
---|---|---|
committer | 2020-06-28 00:15:04 -0400 | |
commit | 8e30adbb7886b61a680d0d01bdd50c29a015ee79 (patch) | |
tree | 47dbf1d9c96379c931215175c01480097ff448ca /modules/textadept/menu.lua | |
parent | a96fa9e5c2f255a938bd15373344a16448b255c7 (diff) | |
download | textadept-8e30adbb7886b61a680d0d01bdd50c29a015ee79.tar.gz textadept-8e30adbb7886b61a680d0d01bdd50c29a015ee79.zip |
Changed keybinding modifier keys.
They had always been a bit counter-intuitive.
Diffstat (limited to 'modules/textadept/menu.lua')
-rw-r--r-- | modules/textadept/menu.lua | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/modules/textadept/menu.lua b/modules/textadept/menu.lua index 5db2d259..4702ecbc 100644 --- a/modules/textadept/menu.lua +++ b/modules/textadept/menu.lua @@ -15,14 +15,15 @@ module('textadept.menu')]] local _L = _L local SEPARATOR = {''} --- The following buffer functions need to be made constant in order for menu --- items to identify the key associated with the functions. +-- The following buffer and view functions need to be made constant in order for +-- menu items to identify the key associated with the functions. local menu_buffer_functions = { 'undo', 'redo', 'cut', 'copy', 'paste', 'line_duplicate', 'clear', 'select_all', 'upper_case', 'lower_case', 'move_selected_lines_up', - 'move_selected_lines_down', 'zoom_in', 'zoom_out' + 'move_selected_lines_down' } for _, f in ipairs(menu_buffer_functions) do buffer[f] = buffer[f] end +view.zoom_in, view.zoom_out = view.zoom_in, view.zoom_out -- Commonly used functions in menu commands. local sel_enc = textadept.editing.select_enclosed @@ -398,11 +399,11 @@ local key_shortcuts, menu_items, contextmenu_items -- @return keycode and modifier mask local function get_gdk_key(key_seq) if not key_seq then return nil end - local mods, key = key_seq:match('^([cams]*)(.+)$') - if not mods or not key then return nil end - local modifiers = ((mods:find('s') or key:lower() ~= key) and 1 or 0) + - (mods:find('c') and 4 or 0) + (mods:find('a') and 8 or 0) + - (mods:find('m') and 0x10000000 or 0) + local mods, key = key_seq:match('^(.*%+)(.+)$') + if not mods and not key then mods, key = '', key_seq end + local modifiers = ((mods:find('shift%+') or key:lower() ~= key) and 1 or 0) + + (mods:find('ctrl%+') and 4 or 0) + (mods:find('alt%+') and 8 or 0) + + (mods:find('cmd%+') and 0x10000000 or 0) local code = string.byte(key) if #key > 1 or code < 32 then for i, s in pairs(keys.KEYSYMS) do |