X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkapplication.c;h=9072907513ffb70707d19487a01e29b763adaed1;hb=e1edc998a2e9c557030d207533932b3120e13fe5;hp=a4486c4212f9a317017d21caa13f1da5e411a70a;hpb=9ebeb4e68a4623519f1876b80a65d73f945cd1a0;p=~andy%2Fgtk diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c index a4486c421..907290751 100644 --- a/gtk/gtkapplication.c +++ b/gtk/gtkapplication.c @@ -289,12 +289,12 @@ gtk_application_startup_x11 (GtkApplication *application) static void gtk_application_shutdown_x11 (GtkApplication *application) { - application->priv->session_bus = NULL; - application->priv->object_path = NULL; - gtk_application_set_app_menu_x11 (application, NULL); gtk_application_set_menubar_x11 (application, NULL); + application->priv->session_bus = NULL; + application->priv->object_path = NULL; + g_clear_object (&application->priv->sm_proxy); g_clear_object (&application->priv->client_proxy); g_free (application->priv->app_id); @@ -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",