[mutter/wip/carlosg/xwayland-on-demand: 146/155] core: Shuffle wayland checks on passive button grabs
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/xwayland-on-demand: 146/155] core: Shuffle wayland checks on passive button grabs
- Date: Fri, 24 May 2019 19:55:59 +0000 (UTC)
commit 9367cd2d669dbcf67a1594b7b9b8a242a6f8f637
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri May 24 19:30:34 2019 +0200
core: Shuffle wayland checks on passive button grabs
We used to bail out at the very bottom of it, but it seems better to
do that at a higher level so that we don't have to pass "invalid"
X11 data as arguments (e.g. None for windows, etc)
src/core/keybindings.c | 19 +++++++------------
src/core/window.c | 3 ++-
2 files changed, 9 insertions(+), 13 deletions(-)
---
diff --git a/src/core/keybindings.c b/src/core/keybindings.c
index a99899f80..856c0c58d 100644
--- a/src/core/keybindings.c
+++ b/src/core/keybindings.c
@@ -1171,9 +1171,6 @@ meta_change_button_grab (MetaKeyBindingManager *keys,
int button,
int modmask)
{
- if (meta_is_wayland_compositor ())
- return;
-
MetaBackendX11 *backend = META_BACKEND_X11 (keys->backend);
Display *xdisplay = meta_backend_x11_get_xdisplay (backend);
@@ -1300,12 +1297,8 @@ meta_display_grab_focus_window_button (MetaDisplay *display,
return;
}
- /* FIXME If we ignored errors here instead of spewing, we could
- * put one big error trap around the loop and avoid a bunch of
- * XSync()
- */
-
- meta_change_buttons_grab (keys, window->xwindow, TRUE, TRUE, XIAnyModifier);
+ if (window->xwindow && !meta_is_wayland_compositor ())
+ meta_change_buttons_grab (keys, window->xwindow, TRUE, TRUE, XIAnyModifier);
window->have_focus_click_grab = TRUE;
}
@@ -1320,7 +1313,8 @@ meta_display_ungrab_focus_window_button (MetaDisplay *display,
if (!window->have_focus_click_grab)
return;
- meta_change_buttons_grab (keys, window->xwindow, FALSE, FALSE, XIAnyModifier);
+ if (window->xwindow && !meta_is_wayland_compositor ())
+ meta_change_buttons_grab (keys, window->xwindow, FALSE, FALSE, XIAnyModifier);
window->have_focus_click_grab = FALSE;
}
@@ -1348,7 +1342,8 @@ prefs_changed_callback (MetaPreference pref,
for (l = windows; l; l = l->next)
{
MetaWindow *w = l->data;
- meta_display_ungrab_window_buttons (display, w->xwindow);
+ if (!meta_is_wayland_compositor ())
+ meta_display_ungrab_window_buttons (display, w->xwindow);
}
update_window_grab_modifiers (keys);
@@ -1356,7 +1351,7 @@ prefs_changed_callback (MetaPreference pref,
for (l = windows; l; l = l->next)
{
MetaWindow *w = l->data;
- if (w->type != META_WINDOW_DOCK)
+ if (!meta_is_wayland_compositor () && w->type != META_WINDOW_DOCK)
meta_display_grab_window_buttons (display, w->xwindow);
}
diff --git a/src/core/window.c b/src/core/window.c
index caa1059e3..e10f37143 100644
--- a/src/core/window.c
+++ b/src/core/window.c
@@ -5283,7 +5283,8 @@ meta_window_set_focused_internal (MetaWindow *window,
meta_display_ungrab_focus_window_button (window->display, window);
/* Since we ungrab with XIAnyModifier above, all button
grabs go way so we need to re-grab the window buttons. */
- meta_display_grab_window_buttons (window->display, window->xwindow);
+ if (!meta_is_wayland_compositor ())
+ meta_display_grab_window_buttons (window->display, window->xwindow);
}
g_signal_emit (window, window_signals[FOCUS], 0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]