diff options
-rw-r--r-- | .SRCINFO | 8 | ||||
-rw-r--r-- | PKGBUILD | 10 | ||||
-rw-r--r-- | client-Handle-removal-of-GTK_FRAME_EXTENTS.patch | 53 | ||||
-rw-r--r-- | gaps.patch | 62 |
4 files changed, 34 insertions, 99 deletions
@@ -1,6 +1,6 @@ pkgbase = xfwm4-gaps pkgdesc = Xfce's window manager - now with extra gaps - pkgver = 4.16.1 + pkgver = 4.18.0 pkgrel = 1 url = https://docs.xfce.org/xfce/xfwm4/start arch = x86_64 @@ -15,11 +15,9 @@ pkgbase = xfwm4-gaps depends = hicolor-icon-theme provides = xfwm4 conflicts = xfwm4 - source = https://archive.xfce.org/src/xfce/xfwm4/4.16/xfwm4-4.16.1.tar.bz2 - source = client-Handle-removal-of-GTK_FRAME_EXTENTS.patch + source = https://archive.xfce.org/src/xfce/xfwm4/4.18/xfwm4-4.18.0.tar.bz2 source = gaps.patch - sha256sums = b5b24ca04bd73c642db0a4b4df81d262381d758f01b51108257d48b391b8718c - sha256sums = SKIP + sha256sums = 92cd1b889bb25cb4bc06c1c6736c238d96e79c1e706b9f77fad0a89d6e5fc13f sha256sums = SKIP pkgname = xfwm4-gaps @@ -1,5 +1,5 @@ pkgname=xfwm4-gaps -pkgver=4.16.1 +pkgver=4.18.0 pkgrel=1 pkgdesc="Xfce's window manager - now with extra gaps" arch=('x86_64') @@ -12,16 +12,12 @@ makedepends=('intltool') provides=('xfwm4') conflicts=('xfwm4') source=(https://archive.xfce.org/src/xfce/xfwm4/${pkgver%.*}/xfwm4-$pkgver.tar.bz2 - client-Handle-removal-of-GTK_FRAME_EXTENTS.patch gaps.patch) -sha256sums=('b5b24ca04bd73c642db0a4b4df81d262381d758f01b51108257d48b391b8718c' - SKIP +sha256sums=('92cd1b889bb25cb4bc06c1c6736c238d96e79c1e706b9f77fad0a89d6e5fc13f' SKIP) prepare() { cd "$srcdir/xfwm4-$pkgver" - # https://gitlab.xfce.org/xfce/xfwm4/-/issues/603 - patch -Np1 -i ../client-Handle-removal-of-GTK_FRAME_EXTENTS.patch patch -Np1 -i ../gaps.patch } @@ -31,9 +27,7 @@ build() { ./configure \ --prefix=/usr \ --sysconfdir=/etc \ - --libexecdir=/usr/lib \ --localstatedir=/var \ - --disable-static \ --enable-startup-notification \ --enable-randr \ --enable-compositor \ diff --git a/client-Handle-removal-of-GTK_FRAME_EXTENTS.patch b/client-Handle-removal-of-GTK_FRAME_EXTENTS.patch deleted file mode 100644 index c0d5b69817ac..000000000000 --- a/client-Handle-removal-of-GTK_FRAME_EXTENTS.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 488288f6e35d5d3dc077e87fe2ed83129692f62e Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan <fourdan@xfce.org> -Date: Sun, 14 Nov 2021 11:00:55 +0100 -Subject: [PATCH] client: Handle removal of GTK_FRAME_EXTENTS - -Chromium and GOOGLE Chrome have now support for GTK_FRAME_EXTENTS. - -When maximizing a window, Chromium/Chrome simply removes the property -on its toplevel rather than setting all values to 0. - -xfwm4 would simply ignore the property change because it could not read -the values and therefore apply the old, wrong values. - -Fix xfwm4 to handle the property removal like an actual property change -to 0. - -Signed-off-by: Olivier Fourdan <fourdan@xfce.org> -Closes: https://gitlab.xfce.org/xfce/xfwm4/-/issues/603 ---- - src/client.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/src/client.c b/src/client.c -index 4e6affcfd..310cf90aa 100644 ---- a/src/client.c -+++ b/src/client.c -@@ -4200,6 +4200,7 @@ clientGetGtkFrameExtents (Client * c) - DisplayInfo *display_info; - gboolean value_changed = FALSE; - gulong *extents; -+ unsigned long old_value; - int nitems; - int i; - -@@ -4209,6 +4210,8 @@ clientGetGtkFrameExtents (Client * c) - screen_info = c->screen_info; - display_info = screen_info->display_info; - extents = NULL; -+ -+ old_value = FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS); - FLAG_UNSET (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS); - - if (getCardinalList (display_info, c->window, GTK_FRAME_EXTENTS, &extents, &nitems)) -@@ -4232,6 +4235,9 @@ clientGetGtkFrameExtents (Client * c) - XFree (extents); - } - -+ /* Adding or removing the property also counts as a change */ -+ value_changed |= (old_value ^ FLAG_TEST (c->flags, CLIENT_FLAG_HAS_FRAME_EXTENTS)); -+ - return value_changed; - } - diff --git a/gaps.patch b/gaps.patch index 744debb35964..9c1b86319dec 100644 --- a/gaps.patch +++ b/gaps.patch @@ -1,8 +1,6 @@ -diff --git a/src/client.c b/src/client.c -index 3923dd98b..009f3dd58 100644 ---- a/src/client.c -+++ b/src/client.c -@@ -3296,6 +3296,9 @@ clientNewMaxState (Client *c, XWindowChanges *wc, int mode) +--- a/src/client.c 2022-12-01 11:47:40.000000000 +0100 ++++ b/src/client.c 2022-12-22 23:26:04.000673794 +0100 +@@ -3292,6 +3292,9 @@ } } @@ -12,10 +10,10 @@ index 3923dd98b..009f3dd58 100644 static gboolean clientNewTileSize (Client *c, XWindowChanges *wc, GdkRectangle *rect, tilePositionType tile) { -@@ -3331,36 +3334,72 @@ clientNewTileSize (Client *c, XWindowChanges *wc, GdkRectangle *rect, tilePositi - wc->y = full_y + frameExtentTop (c); - wc->width = full_w / 2 - frameExtentLeft (c) - frameExtentRight (c); - wc->height = full_h - frameExtentTop (c) - frameExtentBottom (c); +@@ -3318,36 +3321,70 @@ + wc->y = full.y + frameExtentTop (c); + wc->width = full.width / 2 - frameExtentLeft (c) - frameExtentRight (c); + wc->height = full.height - frameExtentTop (c) - frameExtentBottom (c); + + wc->x += GAPS_SIZE; + wc->y += GAPS_SIZE; @@ -24,10 +22,10 @@ index 3923dd98b..009f3dd58 100644 + break; case TILE_RIGHT: - wc->x = full_x + full_w / 2 + frameExtentLeft (c); - wc->y = full_y + frameExtentTop (c); - wc->width = full_w - full_w / 2 - frameExtentLeft (c) - frameExtentRight (c); - wc->height = full_h - frameExtentTop (c) - frameExtentBottom (c); + wc->x = full.x + full.width / 2 + frameExtentLeft (c); + wc->y = full.y + frameExtentTop (c); + wc->width = full.width - full.width / 2 - frameExtentLeft (c) - frameExtentRight (c); + wc->height = full.height - frameExtentTop (c) - frameExtentBottom (c); + + wc->x += GAPS_SIZE / 2; + wc->y += GAPS_SIZE; @@ -36,11 +34,10 @@ index 3923dd98b..009f3dd58 100644 + break; case TILE_DOWN_LEFT: - wc->x = full_x + frameExtentLeft (c); - wc->y = full_y + full_h / 2 + frameExtentTop (c); - wc->width = full_w / 2 - frameExtentLeft (c) - frameExtentRight (c); - wc->height = full_h - full_h / 2 - frameExtentTop (c) - frameExtentBottom (c); -+ + wc->x = full.x + frameExtentLeft (c); + wc->y = full.y + full.height / 2 + frameExtentTop (c); + wc->width = full.width / 2 - frameExtentLeft (c) - frameExtentRight (c); + wc->height = full.height - full.height / 2 - frameExtentTop (c) - frameExtentBottom (c); + wc->x += GAPS_SIZE; + wc->y += GAPS_SIZE / 2; + wc->width -= GAPS_SIZE + (GAPS_SIZE / 2); @@ -48,11 +45,10 @@ index 3923dd98b..009f3dd58 100644 + break; case TILE_DOWN_RIGHT: - wc->x = full_x + full_w /2 + frameExtentLeft (c); - wc->y = full_y + full_h / 2 + frameExtentTop (c); - wc->width = full_w - full_w / 2 - frameExtentLeft (c) - frameExtentRight (c); - wc->height = full_h - full_h / 2 - frameExtentTop (c) - frameExtentBottom (c); -+ + wc->x = full.x + full.width /2 + frameExtentLeft (c); + wc->y = full.y + full.height / 2 + frameExtentTop (c); + wc->width = full.width - full.width / 2 - frameExtentLeft (c) - frameExtentRight (c); + wc->height = full.height - full.height / 2 - frameExtentTop (c) - frameExtentBottom (c); + wc->x += GAPS_SIZE / 2; + wc->y += GAPS_SIZE / 2; + wc->width -= GAPS_SIZE + (GAPS_SIZE / 2); @@ -60,10 +56,10 @@ index 3923dd98b..009f3dd58 100644 + break; case TILE_UP_LEFT: - wc->x = full_x + frameExtentLeft (c); - wc->y = full_y + frameExtentTop (c); - wc->width = full_w / 2 - frameExtentLeft (c) - frameExtentRight (c); - wc->height = full_h / 2 - frameExtentTop (c) - frameExtentBottom (c); + wc->x = full.x + frameExtentLeft (c); + wc->y = full.y + frameExtentTop (c); + wc->width = full.width / 2 - frameExtentLeft (c) - frameExtentRight (c); + wc->height = full.height / 2 - frameExtentTop (c) - frameExtentBottom (c); + + wc->x += GAPS_SIZE; + wc->y += GAPS_SIZE; @@ -72,10 +68,10 @@ index 3923dd98b..009f3dd58 100644 + break; case TILE_UP_RIGHT: - wc->x = full_x + full_w /2 + frameExtentLeft (c); - wc->y = full_y + frameExtentTop (c); - wc->width = full_w - full_w / 2 - frameExtentLeft (c) - frameExtentRight (c); - wc->height = full_h / 2 - frameExtentTop (c) - frameExtentBottom (c); + wc->x = full.x + full.width /2 + frameExtentLeft (c); + wc->y = full.y + frameExtentTop (c); + wc->width = full.width - full.width / 2 - frameExtentLeft (c) - frameExtentRight (c); + wc->height = full.height / 2 - frameExtentTop (c) - frameExtentBottom (c); + + wc->x += GAPS_SIZE / 2; + wc->y += GAPS_SIZE; @@ -85,8 +81,8 @@ index 3923dd98b..009f3dd58 100644 break; default: break; -@@ -3400,6 +3439,11 @@ clientNewMaxSize (Client *c, XWindowChanges *wc, GdkRectangle *rect) - wc->height = full_h - frameExtentTop (c) - frameExtentBottom (c); +@@ -3378,6 +3415,11 @@ + wc->height = full.height - frameExtentTop (c) - frameExtentBottom (c); } + wc->x += GAPS_SIZE; |