[arch-commits] Commit in gtk2/trunk (PKGBUILD fix-stuck-grabs.patch)

Ionut Biru ibiru at archlinux.org
Sun Jul 22 09:06:58 UTC 2012


    Date: Sunday, July 22, 2012 @ 05:06:58
  Author: ibiru
Revision: 163910

 fix stuck grabs in certain gtk2 apps

Added:
  gtk2/trunk/fix-stuck-grabs.patch
Modified:
  gtk2/trunk/PKGBUILD

-----------------------+
 PKGBUILD              |   17 ++++++++++-------
 fix-stuck-grabs.patch |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 57 insertions(+), 7 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-07-22 04:17:09 UTC (rev 163909)
+++ PKGBUILD	2012-07-22 09:06:58 UTC (rev 163910)
@@ -4,7 +4,7 @@
 pkgbase=gtk2
 pkgname=('gtk2' 'gtk-update-icon-cache')
 pkgver=2.24.11
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url="http://www.gtk.org/"
 makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxcomposite' 'libxdamage'
@@ -12,13 +12,16 @@
 options=('!libtool')
 license=('LGPL')
 source=(http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-$pkgver.tar.xz
-        xid-collision-debug.patch)
+        xid-collision-debug.patch
+        fix-stuck-grabs.patch)
 sha256sums=('328b4ea19a61040145e777e2ac49820968a382ac8581a380c9429897881812a9'
-            'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558')
+            'd758bb93e59df15a4ea7732cf984d1c3c19dff67c94b957575efea132b8fe558'
+            '7739a1ab04aaf6e7f87987bad106062456e71933bc50acd948160cc03634dcd9')
 
 build() {
-    cd "$srcdir/gtk+-$pkgver"
-    patch -Np1 -i "$srcdir/xid-collision-debug.patch"
+    cd gtk+-$pkgver
+    patch -Np1 -i ../xid-collision-debug.patch
+    patch -Np1 -i ../fix-stuck-grabs.patch
 
     CXX=/bin/false ./configure --prefix=/usr \
         --sysconfdir=/etc \
@@ -38,7 +41,7 @@
     backup=(etc/gtk-2.0/gtkrc)
     replaces=('gtk2-docs')
 
-    cd "$srcdir/gtk+-$pkgver"
+    cd gtk+-$pkgver
 
     make DESTDIR="$pkgdir" install
     sed -i "s#env python#env python2#" $pkgdir/usr/bin/gtk-builder-convert
@@ -50,7 +53,7 @@
     pkgdesc="The GTK+ update icon cache tool"
     depends=('gdk-pixbuf2>=2.24.1-3')
 
-    cd "$srcdir/gtk+-$pkgver/gtk"
+    cd gtk+-$pkgver/gtk
 
     install -D -m755 gtk-update-icon-cache $pkgdir/usr/bin/gtk-update-icon-cache
 }

Added: fix-stuck-grabs.patch
===================================================================
--- fix-stuck-grabs.patch	                        (rev 0)
+++ fix-stuck-grabs.patch	2012-07-22 09:06:58 UTC (rev 163910)
@@ -0,0 +1,47 @@
+From a9fb816a3f64227936f4b25882e4f20ab5018c9c Mon Sep 17 00:00:00 2001
+From: Matthias Clasen <mclasen at redhat.com>
+Date: Wed, 16 May 2012 21:18:51 +0000
+Subject: Fix a case of 'stuck grab'
+
+This was showing up when using a combo box in list mode. After popping
+up the list, the keyboard grab appeared stuck. What was stuck here is
+only the client-side grab, since we forgot to clean up our grabs
+when receiving an UnmapNotify.
+
+This bug was introduced in 3f6592f60fd15fb353fc84600caefba3054dc892.
+
+[ Alexandre Rostovtsev <tetromino at gentoo.org>: backport to 2.24 ]
+
+https://bugzilla.gnome.org/show_bug.cgi?id=680346
+---
+diff --git a/gdk/x11/gdkevents-x11.c b/gdk/x11/gdkevents-x11.c
+index 7cc1000..b96e9f5 100644
+--- a/gdk/x11/gdkevents-x11.c
++++ b/gdk/x11/gdkevents-x11.c
+@@ -1799,16 +1799,15 @@ gdk_event_translate (GdkDisplay *display,
+            * means we hid the window ourselves, so we will have already flipped
+            * the iconified bit off.
+            */
+-          if (window)
+-            {
+-              if (GDK_WINDOW_IS_MAPPED (window))
+-                gdk_synthesize_window_state (window,
+-                                             0,
+-                                             GDK_WINDOW_STATE_ICONIFIED);
+-
+-              _gdk_xgrab_check_unmap (window, xevent->xany.serial);
+-            }
++          if (window && GDK_WINDOW_IS_MAPPED (window))
++            gdk_synthesize_window_state (window,
++                                         0,
++                                         GDK_WINDOW_STATE_ICONIFIED);
+         }
++
++      if (window)
++        _gdk_xgrab_check_unmap (window, xevent->xany.serial);
++
+       break;
+       
+     case MapNotify:
+--
+cgit v0.9.0.2




More information about the arch-commits mailing list