keybindings: Fix external grabs not being ungrabbed

Before starting to use display_get_keybinding() we could compare
MetaKeyBinding.modifiers with MetaKeyCombo.modifiers directly. Now, we
need to resolve the virtual modifiers to match with the mask.
This commit is contained in:
Rui Matos 2014-03-04 20:26:49 +01:00
parent 7e8833a215
commit c07004aefe

View File

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