1
0
forked from aniani/vim

patch 8.2.1019: mapping <M-S-a> does not work in the GUI

Problem:    Mapping <M-S-a> does not work in the GUI.
Solution:   Move the logic to remove the shift modifier to
            may_remove_shift_modifier() and also use it in the GUI.
This commit is contained in:
Bram Moolenaar
2020-06-20 14:43:23 +02:00
parent 280b0dc815
commit ef6746f637
5 changed files with 32 additions and 14 deletions

View File

@@ -1211,15 +1211,16 @@ key_press_event(GtkWidget *widget UNUSED,
if (len == 0) // Unrecognized key
return TRUE;
// Handle modifiers.
modifiers = modifiers_gdk2vim(state);
// For some keys a shift modifier is translated into another key code.
if (len == -3)
key = TO_SPECIAL(string[1], string[2]);
else
key = string[0];
// Handle modifiers.
modifiers = modifiers_gdk2vim(state);
// Recognize special keys.
key = simplify_key(key, &modifiers);
if (key == CSI)
key = K_CSI;
@@ -1235,6 +1236,10 @@ key_press_event(GtkWidget *widget UNUSED,
// <C-H> and <C-h> mean the same thing, always use "H"
if ((modifiers & MOD_MASK_CTRL) && ASCII_ISALPHA(key))
key = TOUPPER_ASC(key);
// May remove the shift modifier if it's included in the key.
modifiers = may_remove_shift_modifier(modifiers, key);
string[0] = key;
len = 1;
}