[mutter/wip/carlosg/async-xwayland-startup] x11: Set up the compositing manager selection on meta_display_init_x11()



commit bffb016bdd7344d16386374abd619d7c373f999e
Author: Carlos Garnacho <carlosg gnome org>
Date:   Fri Feb 28 18:59:39 2020 +0100

    x11: Set up the compositing manager selection on meta_display_init_x11()
    
    This used to be set on meta_compositor_manage(), but only if there is a
    MetaX11Display. Given meta_display_init_x11() is Wayland only, and we can
    always assume compositing to be enabled, just have it invariably set after
    the X server is up.
    
    Given that on Wayland we are pretty much guaranteed to finish MetaX11Display
    setup after the MetaCompositor is enabled, we can also drop that from
    common MetaCompositor code, and into the MetaX11Compositor to cater for the
    X11 windowing.
    
    https://gitlab.gnome.org/GNOME/mutter/merge_requests/944

 src/compositor/compositor.c          | 3 ---
 src/compositor/meta-compositor-x11.c | 2 ++
 src/core/display.c                   | 1 +
 3 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
index 8315ca56e..537f58b42 100644
--- a/src/compositor/compositor.c
+++ b/src/compositor/compositor.c
@@ -558,9 +558,6 @@ meta_compositor_manage (MetaCompositor *compositor)
   MetaDisplay *display = priv->display;
   MetaBackend *backend = meta_get_backend ();
 
-  if (display->x11_display)
-    meta_x11_display_set_cm_selection (display->x11_display);
-
   priv->stage = meta_backend_get_stage (backend);
 
   priv->stage_presented_id =
diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c
index fce3f830c..65e22b075 100644
--- a/src/compositor/meta-compositor-x11.c
+++ b/src/compositor/meta-compositor-x11.c
@@ -109,6 +109,8 @@ meta_compositor_x11_manage (MetaCompositor *compositor)
   MetaBackend *backend = meta_get_backend ();
   Window xwindow;
 
+  meta_x11_display_set_cm_selection (display->x11_display);
+
   compositor_x11->output = display->x11_display->composite_overlay_window;
 
   xwindow = meta_backend_x11_get_xwindow (META_BACKEND_X11 (backend));
diff --git a/src/core/display.c b/src/core/display.c
index 8b9b6c98a..0ab806ea1 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -708,6 +708,7 @@ meta_display_init_x11_finish (MetaDisplay   *display,
   if (!display->display_opening)
     {
       g_signal_emit (display, display_signals[X11_DISPLAY_OPENED], 0);
+      meta_x11_display_set_cm_selection (x11_display);
       meta_display_manage_all_xwindows (display);
       meta_compositor_redirect_x11_windows (display->compositor);
     }


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