From 56913dc8679143308408596f2872f3894b3ab9d0 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 24 Jul 2012 00:01:46 +0000 Subject: Tue Jul 24 00:01:46 UTC 2012 --- extra/gtk2/PKGBUILD | 19 +++++++++------- extra/gtk2/fix-stuck-grabs.patch | 47 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 8 deletions(-) create mode 100644 extra/gtk2/fix-stuck-grabs.patch (limited to 'extra/gtk2') diff --git a/extra/gtk2/PKGBUILD b/extra/gtk2/PKGBUILD index 5081e813d..ee9859444 100644 --- a/extra/gtk2/PKGBUILD +++ b/extra/gtk2/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 163898 2012-07-21 19:20:18Z ibiru $ +# $Id: PKGBUILD 163911 2012-07-22 09:08:14Z ibiru $ # Maintainer: Jan de Groot 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 @@ makedepends=('atk' 'pango' 'libxcursor' 'libxinerama' 'libxrandr' 'libxi' 'libxc 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 @@ package_gtk2() { 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 @@ package_gtk-update-icon-cache() { 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 } diff --git a/extra/gtk2/fix-stuck-grabs.patch b/extra/gtk2/fix-stuck-grabs.patch new file mode 100644 index 000000000..accec431e --- /dev/null +++ b/extra/gtk2/fix-stuck-grabs.patch @@ -0,0 +1,47 @@ +From a9fb816a3f64227936f4b25882e4f20ab5018c9c Mon Sep 17 00:00:00 2001 +From: Matthias Clasen +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 : 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 -- cgit v1.2.3-54-g00ecf