[mutter/wip/carlosg/xwayland-on-demand: 15/18] x11: Initialize GdkDisplay together with MetaX11Display



commit f126c1eeabb000f17170dca3f44f9b743545af3a
Author: Carlos Garnacho <carlosg gnome org>
Date:   Mon Dec 10 13:59:27 2018 +0100

    x11: Initialize GdkDisplay together with MetaX11Display
    
    It's no longer a "singleton", since it may be closed and opened
    again.

 src/core/main.c            | 16 ----------------
 src/x11/meta-x11-display.c |  3 +++
 2 files changed, 3 insertions(+), 16 deletions(-)
---
diff --git a/src/core/main.c b/src/core/main.c
index e8464720f..492c74a9d 100644
--- a/src/core/main.c
+++ b/src/core/main.c
@@ -606,22 +606,6 @@ meta_init (void)
     meta_fatal ("Can't specify both SM save file and SM client id\n");
 
   meta_main_loop = g_main_loop_new (NULL, FALSE);
-
-  /*
-   * We need to make sure the first client connecting to the X server
-   * (e.g. Xwayland started from meta_wayland_init() above) is a permanent one,
-   * so prepare the GDK X11 connection now already. Without doing this, if
-   * there are any functionality that relies on X11 after here before
-   * meta_display_open(), the X server will terminate itself when such a client
-   * disconnects before the permanent GDK client connects.
-   */
-  if (meta_should_autostart_x11_display ())
-    {
-      GError *error = NULL;
-
-      if (!meta_x11_init_gdk_display (&error))
-        g_error ("Failed to open X11 display: %s", error->message);
-    }
 }
 
 /**
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
index f20fd792c..547b1a505 100644
--- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c
@@ -1114,6 +1114,9 @@ meta_x11_display_new (MetaDisplay *display, GError **error)
   };
   Atom atoms[G_N_ELEMENTS(atom_names)];
 
+  if (!meta_x11_init_gdk_display (error))
+    return NULL;
+
   g_assert (prepared_gdk_display);
   gdk_display = g_steal_pointer (&prepared_gdk_display);
 


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