[arch-commits] Commit in gtk3/trunk (PKGBUILD trap_possible_X_error.diff)

Andreas Radke andyrtr at archlinux.org
Wed May 11 08:48:01 UTC 2016


    Date: Wednesday, May 11, 2016 @ 10:48:01
  Author: andyrtr
Revision: 267787

upgpkg: gtk3 3.20.4-2

add upstream fix to solve XI2 related crashes in X2go sessions

Added:
  gtk3/trunk/trap_possible_X_error.diff
Modified:
  gtk3/trunk/PKGBUILD

----------------------------+
 PKGBUILD                   |   13 ++++++++++---
 trap_possible_X_error.diff |   30 ++++++++++++++++++++++++++++++
 2 files changed, 40 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-05-11 08:42:37 UTC (rev 267786)
+++ PKGBUILD	2016-05-11 08:48:01 UTC (rev 267787)
@@ -5,7 +5,7 @@
 pkgbase=gtk3
 pkgname=(gtk3 gtk-update-icon-cache)
 pkgver=3.20.4
-pkgrel=1
+pkgrel=2
 pkgdesc="GObject-based multi-platform GUI toolkit"
 arch=(i686 x86_64)
 url="http://www.gtk.org/"
@@ -18,16 +18,23 @@
         settings.ini
         gtk-query-immodules-3.0.hook
         gtk-update-icon-cache.hook
-        gtk-update-icon-cache.script)
+        gtk-update-icon-cache.script
+        trap_possible_X_error.diff)
 sha256sums=('e7e3aaf54a54dd1c1ca0588939254abe31329e0bcd280a12290d5306b41ea03f'
             '01fc1d81dc82c4a052ac6e25bf9a04e7647267cc3017bc91f9ce3e63e5eb9202'
             'de46e5514ff39a7a65e01e485e874775ab1c0ad20b8e94ada43f4a6af1370845'
             '496064a9dd6214bd58f689dd817dbdc4d7f17d42a8c9940a87018c3f829ce308'
-            'bbe06e1b4e1ad5d61a4e703445a2bb93c6be918964d6dd76c0420c6667fa11eb')
+            'bbe06e1b4e1ad5d61a4e703445a2bb93c6be918964d6dd76c0420c6667fa11eb'
+            '1204b67e45938304ce8500c4b9de52af5d2d90bcb4a2e28bc665f5b29803f28d')
 
 prepare() {
     cd gtk+-$pkgver
     NOCONFIGURE=1 ./autogen.sh
+    
+    # upstream fix for crashes with X servers not supporting XI2
+    # https://bugzilla.gnome.org/show_bug.cgi?id=766233
+    # https://github.com/GNOME/gtk/commit/7e7d7991cc8e7c7a2b50ce6530a8ebafd673516b
+    patch -Np1 -i ${srcdir}/trap_possible_X_error.diff
 }
 
 build() {

Added: trap_possible_X_error.diff
===================================================================
--- trap_possible_X_error.diff	                        (rev 0)
+++ trap_possible_X_error.diff	2016-05-11 08:48:01 UTC (rev 267787)
@@ -0,0 +1,30 @@
+diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c
+index f7c79c4..ad65e29 100644
+--- a/gdk/x11/gdkdisplay-x11.c
++++ b/gdk/x11/gdkdisplay-x11.c
+@@ -2881,10 +2881,14 @@ gdk_x11_display_get_default_seat (GdkDisplay *display)
+ {
+   GList *seats, *l;
+   int device_id;
++  gboolean result = FALSE;
+ 
+   seats = gdk_display_list_seats (display);
+-  XIGetClientPointer (GDK_DISPLAY_XDISPLAY (display),
+-                      None, &device_id);
++
++  gdk_x11_display_error_trap_push (display);
++  result = XIGetClientPointer (GDK_DISPLAY_XDISPLAY (display),
++                               None, &device_id);
++  gdk_x11_display_error_trap_pop_ignored (display);
+ 
+   for (l = seats; l; l = l->next)
+     {
+@@ -2892,7 +2896,7 @@ gdk_x11_display_get_default_seat (GdkDisplay *display)
+ 
+       pointer = gdk_seat_get_pointer (l->data);
+ 
+-      if (gdk_x11_device_get_id (pointer) == device_id)
++      if (gdk_x11_device_get_id (pointer) == device_id || !result)
+         {
+           GdkSeat *seat = l->data;
+           g_list_free (seats);



More information about the arch-commits mailing list