[yelp] yelp: check if running on X11 before running gdk_x11_* code



commit 81c4eead48192e41384e6096f122524c7e0e695e
Author: Armin K <krejzi email com>
Date:   Mon Sep 16 20:25:29 2013 +0200

    yelp: check if running on X11 before running gdk_x11_* code
    
    https://bugzilla.gnome.org/show_bug.cgi?id=708181

 libyelp/yelp-view.c    |    6 +++++-
 src/yelp-application.c |   29 +++++++++++++++++++----------
 2 files changed, 24 insertions(+), 11 deletions(-)
---
diff --git a/libyelp/yelp-view.c b/libyelp/yelp-view.c
index f27dd2e..1ec960a 100644
--- a/libyelp/yelp-view.c
+++ b/libyelp/yelp-view.c
@@ -26,7 +26,9 @@
 #include <glib-object.h>
 #include <gio/gio.h>
 #include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#endif
 #include <webkit/webkit.h>
 
 #include "yelp-debug.h"
@@ -785,8 +787,10 @@ view_install_uri (YelpView    *view,
     gtkwin = gtk_widget_get_toplevel (GTK_WIDGET (view));
     if (gtkwin != NULL && gtk_widget_is_toplevel (gtkwin)) {
         gdkwin = gtk_widget_get_window (gtkwin);
-        if (gdkwin != NULL)
+#ifdef GDK_WINDOWING_X11
+        if (gdkwin != NULL && GDK_IS_X11_WINDOW (gdkwin))
             xid = gdk_x11_window_get_xid (gdkwin);
+#endif
     }
 
     if (priv->state == YELP_VIEW_STATE_ERROR)
diff --git a/src/yelp-application.c b/src/yelp-application.c
index 2ac1f99..6f125ba 100644
--- a/src/yelp-application.c
+++ b/src/yelp-application.c
@@ -28,7 +28,9 @@
 #include <gio/gsettingsbackend.h>
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
 #include <gdk/gdkx.h>
+#endif
 #include <stdlib.h>
 
 #include "yelp-bookmarks.h"
@@ -467,18 +469,25 @@ application_uri_resolved (YelpUri             *uri,
 
     /* Metacity no longer does anything useful with gtk_window_present */
     gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
-    if (gdk_window)
-        gdk_x11_window_move_to_current_desktop (gdk_window);
 
-    /* Ensure we actually present the window when invoked from the command
-     * line. This is somewhat evil, but the minor evil of Yelp stealing
-     * focus (after you requested it) is outweighed for me by the major
-     * evil of no help window appearing when you click Help.
-     */
-    if (data->timestamp == 0)
-        data->timestamp = gdk_x11_get_server_time (gtk_widget_get_window (GTK_WIDGET (window)));
+#ifdef GDK_WINDOWING_X11
+    if (GDK_IS_X11_WINDOW (gdk_window)){
+        if (gdk_window)
+            gdk_x11_window_move_to_current_desktop (gdk_window);
+
+        /* Ensure we actually present the window when invoked from the command
+         * line. This is somewhat evil, but the minor evil of Yelp stealing
+         * focus (after you requested it) is outweighed for me by the major
+         * evil of no help window appearing when you click Help.
+         */
+        if (data->timestamp == 0)
+            data->timestamp = gdk_x11_get_server_time (gtk_widget_get_window (GTK_WIDGET (window)));
 
-    gtk_window_present_with_time (GTK_WINDOW (window), data->timestamp);
+        gtk_window_present_with_time (GTK_WINDOW (window), data->timestamp);
+    }
+    else
+#endif
+        gtk_window_present (GTK_WINDOW (window));
 
     g_object_unref (uri);
     g_free (data);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]