]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkapplication.c
a11y: Emit text-changed signals directly
[~andy/gtk] / gtk / gtkapplication.c
index bbb65b847e3f8e7f73a5e06cb6467964d65419db..d60584657265624f7378fd127c80585f394d2ef2 100644 (file)
@@ -1418,16 +1418,24 @@ 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");
+#ifdef GDK_WINDOWING_X11
+      else if (GDK_IS_X11_WINDOW (gdkwindow))
+        xid = GDK_WINDOW_XID (gdkwindow);
+#endif
+    }
 
   res = g_dbus_proxy_call_sync (application->priv->sm_proxy,
                                 "Inhibit",