x11: Fix first call to _gdk_x11_keymap_key_is_modifier()
_gdk_x11_keymap_key_is_modifier() never tries to set min/max_keycode if they haven't been set before, meaning that until another function sets those, all the keys will be seen as non-modifiers. This causes GdkKeyEvents to be wrongly tagged with "->is_modifier = 0" when in actual fact the key is a modifier. This fixes keyboard shortcuts captured with GtkCellRendererAccel in "raw" mode thinking a modifier without any actual keys is a valid shortcut. https://bugzilla.gnome.org/show_bug.cgi?id=670400
This commit is contained in:
@ -1490,6 +1490,7 @@ _gdk_x11_keymap_key_is_modifier (GdkKeymap *keymap,
|
||||
GdkX11Keymap *keymap_x11 = GDK_X11_KEYMAP (keymap);
|
||||
gint i;
|
||||
|
||||
update_keyrange (keymap_x11);
|
||||
if (keycode < keymap_x11->min_keycode ||
|
||||
keycode > keymap_x11->max_keycode)
|
||||
return FALSE;
|
||||
|
||||
Reference in New Issue
Block a user