[mutter/wip/carlosg/xwayland-on-demand: 146/155] core: Shuffle wayland checks on passive button grabs



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]