libcanberra-0.30-wayland-1.patch 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. Submitted by: Xi Ruoyao <xry111 at mengyan1223 dot wang>
  2. Date: 2020-09-21
  3. Initial Package Version: 0.30
  4. Upstream Status: Commited
  5. Origin: Upstream Git Repository
  6. Description: Fix a bug crashing some applications in Wayland desktops.
  7. From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001
  8. From: Michael Meeks <michael.meeks@suse.com>
  9. Date: Fri, 9 Nov 2012 16:16:40 +0000
  10. Subject: gtk: Don't assume all GdkDisplays are GdkX11Displays:
  11. broadway/wayland
  12. ---
  13. src/canberra-gtk-module.c | 15 +++++++++++++++
  14. src/canberra-gtk.c | 5 +++++
  15. 2 files changed, 20 insertions(+)
  16. diff --git a/src/canberra-gtk-module.c b/src/canberra-gtk-module.c
  17. index 67791f0..c1532ab 100644
  18. --- a/src/canberra-gtk-module.c
  19. +++ b/src/canberra-gtk-module.c
  20. @@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
  21. guchar *data = NULL;
  22. gint ret = -1;
  23. +#ifdef GDK_IS_X11_DISPLAY
  24. + if (!GDK_IS_X11_DISPLAY(d))
  25. + return 0;
  26. +#endif
  27. +
  28. if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
  29. gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
  30. 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
  31. @@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDisplay *d) {
  32. guchar *data = NULL;
  33. gint ret = -1;
  34. +#ifdef GDK_IS_X11_DISPLAY
  35. + if (!GDK_IS_X11_DISPLAY(d))
  36. + return 0;
  37. +#endif
  38. +
  39. if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),
  40. gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"),
  41. 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
  42. @@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisplay *d, GdkWindow *w) {
  43. gboolean ret = FALSE;
  44. Atom xembed;
  45. +#ifdef GDK_IS_X11_DISPLAY
  46. + if (!GDK_IS_X11_DISPLAY(d))
  47. + return FALSE;
  48. +#endif
  49. +
  50. /* Gnome Panel applets are XEMBED windows. We need to make sure we
  51. * ignore them */
  52. diff --git a/src/canberra-gtk.c b/src/canberra-gtk.c
  53. index 34446f5..08cb668 100644
  54. --- a/src/canberra-gtk.c
  55. +++ b/src/canberra-gtk.c
  56. @@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDisplay *d, GdkWindow *w) {
  57. guchar *data = NULL;
  58. gint ret = -1;
  59. +#ifdef GDK_IS_X11_DISPLAY
  60. + if (!GDK_IS_X11_DISPLAY(d))
  61. + return 0;
  62. +#endif
  63. +
  64. if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
  65. gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
  66. 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
  67. --
  68. cgit v1.2.1