diff --git a/src/core/keybindings.c b/src/core/keybindings.c index 856c0c58d..5fc615e32 100644 --- a/src/core/keybindings.c +++ b/src/core/keybindings.c @@ -1526,6 +1526,8 @@ meta_window_grab_keys (MetaWindow *window) MetaDisplay *display = window->display; MetaKeyBindingManager *keys = &display->key_binding_manager; + if (!meta_is_wayland_compositor ()) + return; if (window->all_keys_grabbed) return; @@ -1560,7 +1562,7 @@ meta_window_grab_keys (MetaWindow *window) void meta_window_ungrab_keys (MetaWindow *window) { - if (window->keys_grabbed) + if (!meta_is_wayland_compositor () && window->keys_grabbed) { MetaDisplay *display = window->display; MetaKeyBindingManager *keys = &display->key_binding_manager; @@ -1619,7 +1621,11 @@ meta_display_grab_accelerator (MetaDisplay *display, return META_KEYBINDING_ACTION_NONE; } - meta_change_keygrab (keys, display->x11_display->xroot, TRUE, &resolved_combo); + if (!meta_is_wayland_compositor ()) + { + meta_change_keygrab (keys, display->x11_display->xroot, + TRUE, &resolved_combo); + } grab = g_new0 (MetaKeyGrab, 1); grab->action = next_dynamic_keybinding_action (); @@ -1665,8 +1671,11 @@ meta_display_ungrab_accelerator (MetaDisplay *display, { int i; - meta_change_keygrab (keys, display->x11_display->xroot, - FALSE, &binding->resolved_combo); + if (!meta_is_wayland_compositor ()) + { + meta_change_keygrab (keys, display->x11_display->xroot, + FALSE, &binding->resolved_combo); + } for (i = 0; i < binding->resolved_combo.len; i++) { @@ -1744,7 +1753,7 @@ meta_window_grab_all_keys (MetaWindow *window, guint32 timestamp) { Window grabwindow; - gboolean retval; + gboolean retval = TRUE; if (window->all_keys_grabbed) return FALSE; @@ -1760,25 +1769,29 @@ meta_window_grab_all_keys (MetaWindow *window, window->desc); meta_window_focus (window, timestamp); - grabwindow = meta_window_x11_get_toplevel_xwindow (window); - - meta_topic (META_DEBUG_KEYBINDINGS, - "Grabbing all keys on window %s\n", window->desc); - retval = grab_keyboard (grabwindow, timestamp, XIGrabModeAsync); - if (retval) + if (!meta_is_wayland_compositor ()) { - window->keys_grabbed = FALSE; - window->all_keys_grabbed = TRUE; - window->grab_on_frame = window->frame != NULL; + grabwindow = meta_window_x11_get_toplevel_xwindow (window); + + meta_topic (META_DEBUG_KEYBINDINGS, + "Grabbing all keys on window %s\n", window->desc); + retval = grab_keyboard (grabwindow, timestamp, XIGrabModeAsync); + if (retval) + { + window->keys_grabbed = FALSE; + window->all_keys_grabbed = TRUE; + window->grab_on_frame = window->frame != NULL; + } } return retval; } void -meta_window_ungrab_all_keys (MetaWindow *window, guint32 timestamp) +meta_window_ungrab_all_keys (MetaWindow *window, + guint32 timestamp) { - if (window->all_keys_grabbed) + if (!meta_is_wayland_compositor () && window->all_keys_grabbed) { ungrab_keyboard (timestamp);