keybindings: Fix ungrabs possibly failing after switching keymaps

We need to resolve the keycode from the keysym again since the keycode
might have changed if there was a keymap switch between the grab and
the ungrab.
This commit is contained in:
Rui Matos 2014-03-04 20:33:56 +01:00
parent c07004aefe
commit 73acbdd30c

View File

@ -1357,6 +1357,7 @@ meta_display_ungrab_accelerator (MetaDisplay *display,
MetaKeyGrab *grab; MetaKeyGrab *grab;
char *key; char *key;
guint mask = 0; guint mask = 0;
guint keycode = 0;
g_return_val_if_fail (action != META_KEYBINDING_ACTION_NONE, FALSE); g_return_val_if_fail (action != META_KEYBINDING_ACTION_NONE, FALSE);
@ -1366,8 +1367,9 @@ meta_display_ungrab_accelerator (MetaDisplay *display,
return FALSE; return FALSE;
meta_display_devirtualize_modifiers (display, grab->combo->modifiers, &mask); meta_display_devirtualize_modifiers (display, grab->combo->modifiers, &mask);
keycode = keysym_to_keycode (display, grab->combo->keysym);
binding = display_get_keybinding (display, grab->combo->keycode, mask); binding = display_get_keybinding (display, keycode, mask);
if (binding) if (binding)
{ {
guint32 index_key; guint32 index_key;