keybindings: Make sure not to call meta_change_keygrab under Wayland

This commit is contained in:
Jasper St. Pierre 2014-05-03 12:49:41 -04:00
parent fa29a1a99e
commit 845fdda22c

View File

@ -1259,6 +1259,7 @@ guint
meta_display_grab_accelerator (MetaDisplay *display, meta_display_grab_accelerator (MetaDisplay *display,
const char *accelerator) const char *accelerator)
{ {
MetaBackend *backend = meta_get_backend ();
MetaKeyBinding *binding; MetaKeyBinding *binding;
MetaKeyGrab *grab; MetaKeyGrab *grab;
guint keysym = 0; guint keysym = 0;
@ -1284,7 +1285,8 @@ meta_display_grab_accelerator (MetaDisplay *display,
if (display_get_keybinding (display, keycode, mask)) if (display_get_keybinding (display, keycode, mask))
return META_KEYBINDING_ACTION_NONE; return META_KEYBINDING_ACTION_NONE;
meta_change_keygrab (display, display->screen->xroot, TRUE, keysym, keycode, mask); if (META_IS_BACKEND_X11 (backend))
meta_change_keygrab (display, display->screen->xroot, TRUE, keysym, keycode, mask);
grab = g_new0 (MetaKeyGrab, 1); grab = g_new0 (MetaKeyGrab, 1);
grab->action = next_dynamic_keybinding_action (); grab->action = next_dynamic_keybinding_action ();
@ -1314,6 +1316,7 @@ gboolean
meta_display_ungrab_accelerator (MetaDisplay *display, meta_display_ungrab_accelerator (MetaDisplay *display,
guint action) guint action)
{ {
MetaBackend *backend = meta_get_backend ();
MetaKeyBinding *binding; MetaKeyBinding *binding;
MetaKeyGrab *grab; MetaKeyGrab *grab;
char *key; char *key;
@ -1335,10 +1338,11 @@ meta_display_ungrab_accelerator (MetaDisplay *display,
{ {
guint32 index_key; guint32 index_key;
meta_change_keygrab (display, display->screen->xroot, FALSE, if (META_IS_BACKEND_X11 (backend))
binding->keysym, meta_change_keygrab (display, display->screen->xroot, FALSE,
binding->keycode, binding->keysym,
binding->mask); binding->keycode,
binding->mask);
index_key = key_binding_key (binding->keycode, binding->mask); index_key = key_binding_key (binding->keycode, binding->mask);
g_hash_table_remove (display->key_bindings_index, GINT_TO_POINTER (index_key)); g_hash_table_remove (display->key_bindings_index, GINT_TO_POINTER (index_key));