From 0c8308a9eb7ef6a30cec078ad1d753bd52979b66 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 21 Jul 2012 00:02:19 +0000 Subject: Sat Jul 21 00:02:19 UTC 2012 --- extra/xfwm4/PKGBUILD | 13 ++-- ...4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch | 84 ++++++++++++++++++++++ 2 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 extra/xfwm4/xfwm4-4.10.0-implement-NET_WM_MOVERESIZE_CANCEL.patch (limited to 'extra/xfwm4') 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 # Contributor: tobias 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 +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 -- cgit v1.2.3-54-g00ecf