]> Pileus Git - ~andy/gtk/commitdiff
Don't crash if inhibit is called with an unrealized window
authorWilliam Jon McCann <jmccann@redhat.com>
Fri, 15 Feb 2013 21:21:09 +0000 (16:21 -0500)
committerWilliam Jon McCann <jmccann@redhat.com>
Fri, 15 Feb 2013 21:56:06 +0000 (16:56 -0500)
gtk/gtkapplication.c

index bbb65b847e3f8e7f73a5e06cb6467964d65419db..9072907513ffb70707d19487a01e29b763adaed1 100644 (file)
@@ -1418,16 +1418,22 @@ gtk_application_inhibit (GtkApplication             *application,
   GVariant *res;
   GError *error = NULL;
   guint cookie;
-  guint xid;
+  guint xid = 0;
 
   g_return_val_if_fail (GTK_IS_APPLICATION (application), 0);
   g_return_val_if_fail (!g_application_get_is_remote (G_APPLICATION (application)), 0);
   g_return_val_if_fail (application->priv->sm_proxy != NULL, 0);
 
   if (window != NULL)
-    xid = GDK_WINDOW_XID (gtk_widget_get_window (GTK_WIDGET (window)));
-  else
-    xid = 0;
+    {
+      GdkWindow *gdkwindow;
+
+      gdkwindow = gtk_widget_get_window (GTK_WIDGET (window));
+      if (gdkwindow == NULL)
+        g_warning ("Inhibit called with an unrealized window");
+      else
+        xid = GDK_WINDOW_XID (gdkwindow);
+    }
 
   res = g_dbus_proxy_call_sync (application->priv->sm_proxy,
                                 "Inhibit",