[Xfce4-commits] <midori:master> Enclose screen saver and root window in IS_X11_DISPLAY

Christian Dywan noreply at xfce.org
Tue Sep 18 22:04:04 CEST 2012


Updating branch refs/heads/master
         to 01b36c5fc46385faf40eea9d66af1a5c8c497409 (commit)
       from 7e39d05a172b2b5ae885c5538ce18b18c10c13ff (commit)

commit 01b36c5fc46385faf40eea9d66af1a5c8c497409
Author: Christian Dywan <christian at twotoasts.de>
Date:   Tue Sep 18 21:29:38 2012 +0200

    Enclose screen saver and root window in IS_X11_DISPLAY
    
    If building with a Wayland-enabled GTK+3 the GdkDisplay
    can be something other than GdkX11Display at runtime.
    
    Fixes: https://bugs.launchpad.net/midori/+bug/975355

 katze/gtk3-compat.h |    4 ++++
 midori/main.c       |   13 ++++++++++---
 midori/sokoke.c     |   43 +++++++++++++++++++++++--------------------
 3 files changed, 37 insertions(+), 23 deletions(-)

diff --git a/katze/gtk3-compat.h b/katze/gtk3-compat.h
index 12981b1..a8450af 100644
--- a/katze/gtk3-compat.h
+++ b/katze/gtk3-compat.h
@@ -116,6 +116,10 @@ G_BEGIN_DECLS
     #define GDK_KEY_Return GDK_Return
 #endif
 
+#ifndef GDK_IS_X11_DISPLAY
+    #define GDK_IS_X11_DISPLAY(display) TRUE
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/midori/main.c b/midori/main.c
index d2104d7..2d3af37 100644
--- a/midori/main.c
+++ b/midori/main.c
@@ -1599,9 +1599,16 @@ midori_inactivity_timeout (gpointer data)
     if (has_extension == -1)
     {
         GdkDisplay* display = gtk_widget_get_display (GTK_WIDGET (mit->browser));
-        xdisplay = GDK_DISPLAY_XDISPLAY (display);
-        has_extension = XScreenSaverQueryExtension (xdisplay,
-                                                    &event_base, &error_base);
+        if (GDK_IS_X11_DISPLAY (display))
+        {
+            xdisplay = GDK_DISPLAY_XDISPLAY (display);
+            has_extension = XScreenSaverQueryExtension (xdisplay,
+                                                        &event_base, &error_base);
+        }
+        else
+        {
+            has_extension = 0;
+        }
     }
 
     if (has_extension)
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 8efc184..a303bfb 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -688,26 +688,29 @@ sokoke_get_desktop (void)
         }
         else
         {
-        /* Are we running in Xfce <= 4.6? */
-        GdkDisplay* display = gdk_display_get_default ();
-        Display* xdisplay = GDK_DISPLAY_XDISPLAY (display);
-        Window root_window = RootWindow (xdisplay, 0);
-        Atom save_mode_atom = gdk_x11_get_xatom_by_name_for_display (
-            display, "_DT_SAVE_MODE");
-        Atom actual_type;
-        int actual_format;
-        unsigned long n_items, bytes;
-        gchar* value;
-        int status = XGetWindowProperty (xdisplay, root_window,
-            save_mode_atom, 0, (~0L),
-            False, AnyPropertyType, &actual_type, &actual_format,
-            &n_items, &bytes, (unsigned char**)&value);
-        if (status == Success)
-        {
-            if (n_items == 6 && !strncmp (value, "xfce4", 6))
-                desktop = SOKOKE_DESKTOP_XFCE;
-            XFree (value);
-        }
+            /* Are we running in Xfce <= 4.6? */
+            GdkDisplay* display = gdk_display_get_default ();
+            if (GDK_IS_X11_DISPLAY (display))
+            {
+                Display* xdisplay = GDK_DISPLAY_XDISPLAY (display);
+                Window root_window = RootWindow (xdisplay, 0);
+                Atom save_mode_atom = gdk_x11_get_xatom_by_name_for_display (
+                    display, "_DT_SAVE_MODE");
+                Atom actual_type;
+                int actual_format;
+                unsigned long n_items, bytes;
+                gchar* value;
+                int status = XGetWindowProperty (xdisplay, root_window,
+                    save_mode_atom, 0, (~0L),
+                    False, AnyPropertyType, &actual_type, &actual_format,
+                    &n_items, &bytes, (unsigned char**)&value);
+                if (status == Success)
+                {
+                    if (n_items == 6 && !strncmp (value, "xfce4", 6))
+                        desktop = SOKOKE_DESKTOP_XFCE;
+                    XFree (value);
+                }
+            }
         }
     }
 


More information about the Xfce4-commits mailing list