[arch-commits] Commit in xfwm4/trunk (2 files)

Evangelos Foutras foutrelis at gemini.archlinux.org
Sun Nov 14 11:29:12 UTC 2021


    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 <fourdan at 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 at 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;
+ }
+ 



More information about the arch-commits mailing list