summaryrefslogtreecommitdiff
path: root/extra/xfwm4
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-07-21 00:02:19 +0000
committerroot <root@rshg054.dnsready.net>2012-07-21 00:02:19 +0000
commit0c8308a9eb7ef6a30cec078ad1d753bd52979b66 (patch)
tree4ed4ccb8be3076c0b8f3366e05f0ebcd68c65e39 /extra/xfwm4
parent226ac092dca4754b7b5a421e226c5971e3b607b2 (diff)
Sat Jul 21 00:02:19 UTC 2012
Diffstat (limited to 'extra/xfwm4')
-rw-r--r--extra/xfwm4/PKGBUILD13
-rw-r--r--extra/xfwm4/xfwm4-4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch84
2 files changed, 93 insertions, 4 deletions
diff --git a/extra/xfwm4/PKGBUILD b/extra/xfwm4/PKGBUILD
index d03daab07..7fd1b766f 100644
--- a/extra/xfwm4/PKGBUILD
+++ b/extra/xfwm4/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 157909 2012-04-30 04:21:48Z foutrelis $
+# $Id: PKGBUILD 163772 2012-07-19 16:30:24Z foutrelis $
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: tobias <tobias funnychar archlinux.org>
pkgname=xfwm4
pkgver=4.10.0
-pkgrel=1
+pkgrel=2
pkgdesc="Xfce window manager"
arch=('i686' 'x86_64')
url="http://www.xfce.org/"
@@ -14,12 +14,17 @@ depends=('libxfce4ui' 'libwnck' 'hicolor-icon-theme')
makedepends=('intltool')
options=('!libtool')
install=$pkgname.install
-source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2)
-sha256sums=('492357bf48121ebffabf2bf0d3b84213d19bf81087321175d687c8a68efe1f9c')
+source=(http://archive.xfce.org/src/xfce/$pkgname/4.10/$pkgname-$pkgver.tar.bz2
+ xfwm4-4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch)
+sha256sums=('492357bf48121ebffabf2bf0d3b84213d19bf81087321175d687c8a68efe1f9c'
+ 'f088a56cc05d1856af8d68dae9e40bc53b724d9dde4d8c2b78a88922c0ee6d1d')
build() {
cd "$srcdir/$pkgname-$pkgver"
+ # Fix https://bugzilla.xfce.org/show_bug.cgi?id=8949 (FS#29970)
+ patch -Np1 -i "$srcdir/xfwm4-4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch"
+
./configure \
--prefix=/usr \
--sysconfdir=/etc \
diff --git a/extra/xfwm4/xfwm4-4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch b/extra/xfwm4/xfwm4-4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch
new file mode 100644
index 000000000..f01b554ce
--- /dev/null
+++ b/extra/xfwm4/xfwm4-4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch
@@ -0,0 +1,84 @@
+From 099614e3f045e06db7ab509e174510ea74857adb Mon Sep 17 00:00:00 2001
+From: Olivier Fourdan <fourdan@xfce.org>
+Date: Wed, 18 Jul 2012 20:12:07 +0000
+Subject: Implement NET_WM_MOVERESIZE_CANCEL message (bug #8949)
+
+as gtk+-3.4 now uses it.
+---
+diff --git a/src/display.h b/src/display.h
+index 1ad2ef8..8797237 100644
+--- a/src/display.h
++++ b/src/display.h
+@@ -163,7 +163,8 @@ enum
+ NET_WM_MOVERESIZE_SIZE_LEFT,
+ NET_WM_MOVERESIZE_MOVE,
+ NET_WM_MOVERESIZE_SIZE_KEYBOARD,
+- NET_WM_MOVERESIZE_MOVE_KEYBOARD
++ NET_WM_MOVERESIZE_MOVE_KEYBOARD,
++ NET_WM_MOVERESIZE_CANCEL
+ };
+
+ enum
+diff --git a/src/moveresize.c b/src/moveresize.c
+index 9893c30..a98bdf7 100644
+--- a/src/moveresize.c
++++ b/src/moveresize.c
+@@ -827,7 +827,7 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
+ eventFilterStatus status = EVENT_FILTER_STOP;
+ MoveResizeData *passdata = (MoveResizeData *) data;
+ Client *c = NULL;
+- gboolean moving = TRUE;
++ gboolean moving;
+ XWindowChanges wc;
+ int prev_x, prev_y;
+
+@@ -840,6 +840,12 @@ clientMoveEventFilter (XEvent * xevent, gpointer data)
+ display_info = screen_info->display_info;
+ configure_flags = NO_CFG_FLAG;
+
++ /*
++ * Clients may choose to end the move operation,
++ * we use XFWM_FLAG_MOVING_RESIZING for that.
++ */
++ moving = FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING);
++
+ /* Update the display time */
+ myDisplayUpdateCurrentTime (display_info, xevent);
+
+@@ -1294,7 +1300,12 @@ clientResizeEventFilter (XEvent * xevent, gpointer data)
+ screen_info = c->screen_info;
+ display_info = screen_info->display_info;
+ status = EVENT_FILTER_STOP;
+- resizing = TRUE;
++
++ /*
++ * Clients may choose to end the resize operation,
++ * we use XFWM_FLAG_MOVING_RESIZING for that.
++ */
++ resizing = FLAG_TEST (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING);
+
+ frame_x = frameX (c);
+ frame_y = frameY (c);
+diff --git a/src/netwm.c b/src/netwm.c
+index 545e64a..1352f08 100644
+--- a/src/netwm.c
++++ b/src/netwm.c
+@@ -695,10 +695,15 @@ clientNetMoveResize (Client * c, XClientMessageEvent * ev)
+ resize = TRUE; /* Resize */
+ break;
+ case NET_WM_MOVERESIZE_MOVE:
+- default:
+ event->type = ButtonPress;
+ resize = FALSE; /* Move */
+ break;
++ case NET_WM_MOVERESIZE_CANCEL:
++ FLAG_UNSET (c->xfwm_flags, XFWM_FLAG_MOVING_RESIZING);
++ /* Walk through */
++ default: /* Do nothing */
++ return;
++ break;
+ }
+
+ if (!FLAG_TEST (c->flags, CLIENT_FLAG_FULLSCREEN))
+--
+cgit v0.9.0.3