]> Pileus Git - ~andy/gtk/commitdiff
gdk: only emit display-opened after the default display has been set
authorCosimo Cecchi <cosimoc@gnome.org>
Mon, 8 Oct 2012 22:44:09 +0000 (18:44 -0400)
committerCosimo Cecchi <cosimoc@gnome.org>
Mon, 8 Oct 2012 22:44:09 +0000 (18:44 -0400)
This avoids a case where the display has been opened, but calling
gdk_display_get_default() in the callback doesn't work.

Reviewed-by: Benjamin Otte <otte@redhat.com>
gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkdisplaymanager-x11.c

index 0f8b35fc32de0d67e525a6a51166930149653d0e..607d906d32ebb5b20693386d305caeea481c7f69 100644 (file)
@@ -1459,7 +1459,6 @@ _gdk_x11_display_open (const gchar *display_name)
     _gdk_x11_screen_setup (display_x11->screens[i]);
 
   g_signal_emit_by_name (display, "opened");
-  g_signal_emit_by_name (gdk_display_manager_get (), "display-opened", display);
 
   return display;
 }
index 46254a23aa1e6c09fe73014b61ea1f1a79b68e18..544036f1fe55297a82fa3a49c215a121d93259fb 100644 (file)
@@ -51,8 +51,13 @@ gdk_x11_display_manager_open_display (GdkDisplayManager *manager,
   GdkDisplay *display;
 
   display = _gdk_x11_display_open (name);
-  if (manager_x11->default_display == NULL && display != NULL)
-    gdk_display_manager_set_default_display (manager, display);
+  if (display != NULL)
+    {
+      if (manager_x11->default_display == NULL)
+        gdk_display_manager_set_default_display (manager, display);
+
+      g_signal_emit_by_name (manager, "display-opened", display);
+    }
 
   return display;
 }