1*4882a593SmuzhiyunFrom c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001 2*4882a593SmuzhiyunFrom: Michael Meeks <michael.meeks@suse.com> 3*4882a593SmuzhiyunDate: Fri, 9 Nov 2012 16:16:40 +0000 4*4882a593SmuzhiyunSubject: [PATCH] gtk: Don't assume all GdkDisplays are GdkX11Displays: 5*4882a593Smuzhiyun broadway/wayland 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun--- 8*4882a593Smuzhiyun src/canberra-gtk-module.c | 15 +++++++++++++++ 9*4882a593Smuzhiyun src/canberra-gtk.c | 5 +++++ 10*4882a593Smuzhiyun 2 files changed, 20 insertions(+) 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun--- a/src/canberra-gtk-module.c 13*4882a593Smuzhiyun+++ b/src/canberra-gtk-module.c 14*4882a593Smuzhiyun@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDispla 15*4882a593Smuzhiyun guchar *data = NULL; 16*4882a593Smuzhiyun gint ret = -1; 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun+#ifdef GDK_IS_X11_DISPLAY 19*4882a593Smuzhiyun+ if (!GDK_IS_X11_DISPLAY(d)) 20*4882a593Smuzhiyun+ return 0; 21*4882a593Smuzhiyun+#endif 22*4882a593Smuzhiyun+ 23*4882a593Smuzhiyun if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), 24*4882a593Smuzhiyun gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 25*4882a593Smuzhiyun 0, G_MAXLONG, False, XA_CARDINAL, &type_return, 26*4882a593Smuzhiyun@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDispl 27*4882a593Smuzhiyun guchar *data = NULL; 28*4882a593Smuzhiyun gint ret = -1; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun+#ifdef GDK_IS_X11_DISPLAY 31*4882a593Smuzhiyun+ if (!GDK_IS_X11_DISPLAY(d)) 32*4882a593Smuzhiyun+ return 0; 33*4882a593Smuzhiyun+#endif 34*4882a593Smuzhiyun+ 35*4882a593Smuzhiyun if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)), 36*4882a593Smuzhiyun gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"), 37*4882a593Smuzhiyun 0, G_MAXLONG, False, XA_CARDINAL, &type_return, 38*4882a593Smuzhiyun@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisp 39*4882a593Smuzhiyun gboolean ret = FALSE; 40*4882a593Smuzhiyun Atom xembed; 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun+#ifdef GDK_IS_X11_DISPLAY 43*4882a593Smuzhiyun+ if (!GDK_IS_X11_DISPLAY(d)) 44*4882a593Smuzhiyun+ return FALSE; 45*4882a593Smuzhiyun+#endif 46*4882a593Smuzhiyun+ 47*4882a593Smuzhiyun /* Gnome Panel applets are XEMBED windows. We need to make sure we 48*4882a593Smuzhiyun * ignore them */ 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun--- a/src/canberra-gtk.c 51*4882a593Smuzhiyun+++ b/src/canberra-gtk.c 52*4882a593Smuzhiyun@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDispla 53*4882a593Smuzhiyun guchar *data = NULL; 54*4882a593Smuzhiyun gint ret = -1; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun+#ifdef GDK_IS_X11_DISPLAY 57*4882a593Smuzhiyun+ if (!GDK_IS_X11_DISPLAY(d)) 58*4882a593Smuzhiyun+ return 0; 59*4882a593Smuzhiyun+#endif 60*4882a593Smuzhiyun+ 61*4882a593Smuzhiyun if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w), 62*4882a593Smuzhiyun gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"), 63*4882a593Smuzhiyun 0, G_MAXLONG, False, XA_CARDINAL, &type_return, 64