keybindings: Move common window grab code out of X-only if statement

`3c8d4171` moved some common codes into X11-only code blocks by mistake,
and it prevents keyboard window resize/move mode under Wayland because
those variables are unset. This commit fixed it via moving such common
codes out of X11-only code blocks.

Fixes: https://gitlab.gnome.org/GNOME/mutter/issues/949

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/997
This commit is contained in:
Alynx Zhou 2020-01-09 10:12:41 +08:00 committed by Jonas Ådahl
parent 512bb7d1cd
commit aba0b9ef64

View File

@ -1820,12 +1820,12 @@ meta_window_grab_all_keys (MetaWindow *window,
meta_topic (META_DEBUG_KEYBINDINGS, meta_topic (META_DEBUG_KEYBINDINGS,
"Grabbing all keys on window %s\n", window->desc); "Grabbing all keys on window %s\n", window->desc);
retval = grab_keyboard (grabwindow, timestamp, XIGrabModeAsync); retval = grab_keyboard (grabwindow, timestamp, XIGrabModeAsync);
if (retval) }
{ if (retval)
window->keys_grabbed = FALSE; {
window->all_keys_grabbed = TRUE; window->keys_grabbed = FALSE;
window->grab_on_frame = window->frame != NULL; window->all_keys_grabbed = TRUE;
} window->grab_on_frame = window->frame != NULL;
} }
return retval; return retval;
@ -1835,9 +1835,10 @@ void
meta_window_ungrab_all_keys (MetaWindow *window, meta_window_ungrab_all_keys (MetaWindow *window,
guint32 timestamp) guint32 timestamp)
{ {
if (!meta_is_wayland_compositor () && window->all_keys_grabbed) if (window->all_keys_grabbed)
{ {
ungrab_keyboard (timestamp); if (!meta_is_wayland_compositor())
ungrab_keyboard (timestamp);
window->grab_on_frame = FALSE; window->grab_on_frame = FALSE;
window->all_keys_grabbed = FALSE; window->all_keys_grabbed = FALSE;