diff options
author | William Jon McCann <jmccann@redhat.com> | 2013-02-15 16:21:09 -0500 |
---|---|---|
committer | William Jon McCann <jmccann@redhat.com> | 2013-02-15 16:56:06 -0500 |
commit | 8e96488bb29dc51315680d3745f945be19a03fc1 (patch) | |
tree | abca80ed1190b937aa5530b523b05855c02da6ab /gtk/gtkapplication.c | |
parent | 8f276d4b65a04e088c15c1be94545984e0a5a19b (diff) | |
download | gtk+-8e96488bb29dc51315680d3745f945be19a03fc1.tar.gz |
Don't crash if inhibit is called with an unrealized window
Diffstat (limited to 'gtk/gtkapplication.c')
-rw-r--r-- | gtk/gtkapplication.c | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/gtk/gtkapplication.c b/gtk/gtkapplication.c index bbb65b847e..9072907513 100644 --- a/gtk/gtkapplication.c +++ b/gtk/gtkapplication.c @@ -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", |