[mutter] stage/x11: Fetch the X11 display pointer from the X11 backend



commit 39e1d5a21426c5ff4dfa768cf3342387354032d3
Author: Jonas Ã…dahl <jadahl gmail com>
Date:   Fri Sep 17 18:26:57 2021 +0200

    stage/x11: Fetch the X11 display pointer from the X11 backend
    
    This eliminates going through the clutter backend singleton.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2014>

 src/backends/x11/meta-stage-x11.c | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)
---
diff --git a/src/backends/x11/meta-stage-x11.c b/src/backends/x11/meta-stage-x11.c
index 866fa17791..388349ca1e 100644
--- a/src/backends/x11/meta-stage-x11.c
+++ b/src/backends/x11/meta-stage-x11.c
@@ -84,6 +84,15 @@ clutter_backend_x11_from_stage (MetaStageX11 *stage_x11)
   return META_CLUTTER_BACKEND_X11 (meta_backend_get_clutter_backend (backend));
 }
 
+static Display *
+xdisplay_from_stage (MetaStageX11 *stage_x11)
+{
+  MetaBackend *backend =
+    meta_stage_impl_get_backend (META_STAGE_IMPL (stage_x11));
+
+  return meta_backend_x11_get_xdisplay (META_BACKEND_X11 (backend));
+}
+
 static void
 meta_stage_x11_fix_window_size (MetaStageX11 *stage_x11,
                                 int           new_width,
@@ -94,7 +103,7 @@ meta_stage_x11_fix_window_size (MetaStageX11 *stage_x11,
 
   if (stage_x11->xwin != None)
     {
-      Display *xdisplay = meta_clutter_x11_get_default_display ();
+      Display *xdisplay = xdisplay_from_stage (stage_x11);
       XSizeHints *size_hints;
 
       size_hints = XAllocSizeHints();
@@ -116,7 +125,7 @@ meta_stage_x11_set_wm_protocols (MetaStageX11 *stage_x11)
 {
   MetaClutterBackendX11 *clutter_backend_x11 =
     clutter_backend_x11_from_stage (stage_x11);
-  Display *xdisplay = meta_clutter_x11_get_default_display ();
+  Display *xdisplay = xdisplay_from_stage (stage_x11);
   Atom protocols[2];
   int n = 0;
   
@@ -161,7 +170,7 @@ meta_stage_x11_resize (ClutterStageWindow *stage_window,
       if (width != stage_x11->xwin_width ||
           height != stage_x11->xwin_height)
         {
-          Display *xdisplay = meta_clutter_x11_get_default_display ();
+          Display *xdisplay = xdisplay_from_stage (stage_x11);
 
           /* XXX: in this case we can rely on a subsequent
            * ConfigureNotify that will result in the stage
@@ -217,7 +226,7 @@ set_wm_title (MetaStageX11 *stage_x11)
 {
   MetaClutterBackendX11 *clutter_backend_x11 =
     clutter_backend_x11_from_stage (stage_x11);
-  Display *xdisplay = meta_clutter_x11_get_default_display ();
+  Display *xdisplay = xdisplay_from_stage (stage_x11);
 
   if (stage_x11->xwin == None)
     return;
@@ -391,7 +400,7 @@ meta_stage_x11_set_title (ClutterStageWindow *stage_window,
 static inline void
 update_wm_hints (MetaStageX11 *stage_x11)
 {
-  Display *xdisplay = meta_clutter_x11_get_default_display ();
+  Display *xdisplay = xdisplay_from_stage (stage_x11);
   XWMHints wm_hints;
 
   if (stage_x11->wm_state & STAGE_X11_WITHDRAWN)
@@ -432,7 +441,7 @@ meta_stage_x11_show (ClutterStageWindow *stage_window,
 
   if (stage_x11->xwin != None)
     {
-      Display *xdisplay = meta_clutter_x11_get_default_display ();
+      Display *xdisplay = xdisplay_from_stage (stage_x11);
 
       if (do_raise)
         {
@@ -462,7 +471,7 @@ meta_stage_x11_hide (ClutterStageWindow *stage_window)
 
   if (stage_x11->xwin != None)
     {
-      Display *xdisplay = meta_clutter_x11_get_default_display ();
+      Display *xdisplay = xdisplay_from_stage (stage_x11);
 
       if (STAGE_X11_IS_MAPPED (stage_x11))
         set_stage_x11_state (stage_x11, 0, STAGE_X11_WITHDRAWN);
@@ -563,7 +572,7 @@ set_user_time (MetaStageX11 *stage_x11,
 
   if (timestamp != CLUTTER_CURRENT_TIME)
     {
-      Display *xdisplay = meta_clutter_x11_get_default_display ();
+      Display *xdisplay = xdisplay_from_stage (stage_x11);
 
       XChangeProperty (xdisplay,
                        stage_x11->xwin,
@@ -593,7 +602,7 @@ handle_wm_protocols_event (MetaStageX11 *stage_x11,
            xevent->xany.window == stage_x11->xwin)
     {
       XClientMessageEvent xclient = xevent->xclient;
-      Display *xdisplay = meta_clutter_x11_get_default_display ();
+      Display *xdisplay = xdisplay_from_stage (stage_x11);
 
       xclient.window = clutter_backend_x11->xwin_root;
       XSendEvent (xdisplay, xclient.window,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]