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,
"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;
}
}
if (retval)
{
window->keys_grabbed = FALSE;
window->all_keys_grabbed = TRUE;
window->grab_on_frame = window->frame != NULL;
}
return retval;
@ -1835,9 +1835,10 @@ void
meta_window_ungrab_all_keys (MetaWindow *window,
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->all_keys_grabbed = FALSE;