summaryrefslogtreecommitdiff
path: root/gtk/gtkapplication.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2013-02-15 16:21:09 -0500
committerWilliam Jon McCann <jmccann@redhat.com>2013-02-15 16:56:06 -0500
commit8e96488bb29dc51315680d3745f945be19a03fc1 (patch)
treeabca80ed1190b937aa5530b523b05855c02da6ab /gtk/gtkapplication.c
parent8f276d4b65a04e088c15c1be94545984e0a5a19b (diff)
downloadgtk+-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.c14
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",