Date: Sunday, November 14, 2021 @ 11:29:11 Author: foutrelis Revision: 428509
upgpkg: xfwm4 4.16.1-3: handle removal of GTK_FRAME_EXTENTS Fixes Chrome/Chromium issue when maximized: https://crbug.com/1260821 Added: xfwm4/trunk/client-Handle-removal-of-GTK_FRAME_EXTENTS.patch Modified: xfwm4/trunk/PKGBUILD --------------------------------------------------+ PKGBUILD | 10 ++- client-Handle-removal-of-GTK_FRAME_EXTENTS.patch | 53 +++++++++++++++++++++ 2 files changed, 60 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-11-14 11:14:40 UTC (rev 428508) +++ PKGBUILD 2021-11-14 11:29:11 UTC (rev 428509) @@ -3,7 +3,7 @@ pkgname=xfwm4 pkgver=4.16.1 -pkgrel=2 +pkgrel=3 pkgdesc="Xfce's window manager" arch=('x86_64') url="https://docs.xfce.org/xfce/xfwm4/start" @@ -12,11 +12,15 @@ depends=('libxfce4ui' 'xfconf' 'libwnck3' 'libepoxy' 'libxpresent' 'hicolor-icon-theme') makedepends=('intltool') -source=(https://archive.xfce.org/src/xfce/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2) -sha256sums=('b5b24ca04bd73c642db0a4b4df81d262381d758f01b51108257d48b391b8718c') +source=(https://archive.xfce.org/src/xfce/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.bz2 + client-Handle-removal-of-GTK_FRAME_EXTENTS.patch) +sha256sums=('b5b24ca04bd73c642db0a4b4df81d262381d758f01b51108257d48b391b8718c' + 'cc49d8c0932dc3f630073e87c8fffaddd811306dc32d74a8127fe0de7baccd4d') prepare() { cd "$srcdir/$pkgname-$pkgver" + # https://gitlab.xfce.org/xfce/xfwm4/-/issues/603 + patch -Np1 -i ../client-Handle-removal-of-GTK_FRAME_EXTENTS.patch } build() { Added: client-Handle-removal-of-GTK_FRAME_EXTENTS.patch =================================================================== --- client-Handle-removal-of-GTK_FRAME_EXTENTS.patch (rev 0) +++ client-Handle-removal-of-GTK_FRAME_EXTENTS.patch 2021-11-14 11:29:11 UTC (rev 428509) @@ -0,0 +1,53 @@ +From 488288f6e35d5d3dc077e87fe2ed83129692f62e Mon Sep 17 00:00:00 2001 +From: Olivier Fourdan <[email protected]> +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 <[email protected]> +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; + } +
