summaryrefslogtreecommitdiff
path: root/source/xfce/xfwm4
diff options
context:
space:
mode:
Diffstat (limited to 'source/xfce/xfwm4')
-rw-r--r--source/xfce/xfwm4/0001-compositor-Ignore-XError-when-changing-background-pi.patch36
-rwxr-xr-xsource/xfce/xfwm4/xfwm4.SlackBuild3
-rw-r--r--source/xfce/xfwm4/xinitrc.xfce9
3 files changed, 40 insertions, 8 deletions
diff --git a/source/xfce/xfwm4/0001-compositor-Ignore-XError-when-changing-background-pi.patch b/source/xfce/xfwm4/0001-compositor-Ignore-XError-when-changing-background-pi.patch
new file mode 100644
index 00000000..200432b3
--- /dev/null
+++ b/source/xfce/xfwm4/0001-compositor-Ignore-XError-when-changing-background-pi.patch
@@ -0,0 +1,36 @@
+From 56d273ee48fffc7fed67ec7b22afd8e4b1c23c6e Mon Sep 17 00:00:00 2001
+From: Olivier Fourdan <fourdan@xfce.org>
+Date: Fri, 25 Dec 2020 18:39:52 +0100
+Subject: [PATCH] compositor: Ignore XError when changing background picture
+
+If xfwm4 is compiled with support for the root pixmap in the compositor,
+changing the background image may cause an XError if the external pixmap
+is already freed.
+
+Guard against such XError.
+
+Signed-off-by: Olivier Fourdan <fourdan@xfce.org>
+Closes: https://gitlab.xfce.org/xfce/xfwm4/-/issues/476
+---
+ src/compositor.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/compositor.c b/src/compositor.c
+index 9c5ceb454..8ff0dad42 100644
+--- a/src/compositor.c
++++ b/src/compositor.c
+@@ -3774,8 +3774,11 @@ compositorHandlePropertyNotify (DisplayInfo *display_info, XPropertyEvent *ev)
+ ScreenInfo *screen_info = myDisplayGetScreenFromRoot (display_info, ev->window);
+ if ((screen_info) && (screen_info->compositor_active) && (screen_info->rootTile))
+ {
++ myDisplayErrorTrapPush (display_info);
+ XClearArea (display_info->dpy, screen_info->output, 0, 0, 0, 0, TRUE);
+ XRenderFreePicture (display_info->dpy, screen_info->rootTile);
++ myDisplayErrorTrapPopIgnored (display_info);
++
+ screen_info->rootTile = None;
+ damage_screen (screen_info);
+
+--
+2.29.2
+
diff --git a/source/xfce/xfwm4/xfwm4.SlackBuild b/source/xfce/xfwm4/xfwm4.SlackBuild
index bb5fd18f..6a5b3b67 100755
--- a/source/xfce/xfwm4/xfwm4.SlackBuild
+++ b/source/xfce/xfwm4/xfwm4.SlackBuild
@@ -80,6 +80,9 @@ find . \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \
-exec chmod 644 {} \+
+# Fix Issue 476
+zcat $CWD/0001-compositor-Ignore-XError-when-changing-background-pi.patch.gz | patch -p1 --verbose || exit 1
+
# Configure:
CFLAGS="$SLKCFLAGS" \
./configure \
diff --git a/source/xfce/xfwm4/xinitrc.xfce b/source/xfce/xfwm4/xinitrc.xfce
index 82c0dd40..4665547a 100644
--- a/source/xfce/xfwm4/xinitrc.xfce
+++ b/source/xfce/xfwm4/xinitrc.xfce
@@ -1,7 +1,4 @@
#!/bin/sh
-# xinitrc.xfce - modified to work around xfce4session bug
-# https://bugzilla.xfce.org/show_bug.cgi?id=8841
-
########################################################################
## Merge in defaults and keymaps ##
@@ -32,9 +29,5 @@ fi
## Start xfce Desktop Environment ##
########################################################################
-if [ -z "$DESKTOP_SESSION" -a -x /usr/bin/ck-launch-session ]; then
- exec ck-launch-session dbus-launch --exit-with-session /usr/bin/startxfce4
-else
- exec dbus-launch --exit-with-session /usr/bin/startxfce4
-fi
+exec /usr/bin/startxfce4