summaryrefslogtreecommitdiff
path: root/gui-libs/gtk/files/gtk-4.10.3-black-screen-rendering.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2023-05-26 15:09:32 +0100
committerV3n3RiX <venerix@koprulu.sector>2023-05-26 15:09:32 +0100
commitf3a881e4cb31d574a107320b2f04e2d1f0ddf551 (patch)
tree0fb407d14cee6b3da0742b5060c92e9accb07fe0 /gui-libs/gtk/files/gtk-4.10.3-black-screen-rendering.patch
parent720452fca3cdf447b4c65bc3bb363032a983309e (diff)
gentoo auto-resync : 26:05:2023 - 15:09:32
Diffstat (limited to 'gui-libs/gtk/files/gtk-4.10.3-black-screen-rendering.patch')
-rw-r--r--gui-libs/gtk/files/gtk-4.10.3-black-screen-rendering.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/gui-libs/gtk/files/gtk-4.10.3-black-screen-rendering.patch b/gui-libs/gtk/files/gtk-4.10.3-black-screen-rendering.patch
new file mode 100644
index 000000000000..0431cf2bf16a
--- /dev/null
+++ b/gui-libs/gtk/files/gtk-4.10.3-black-screen-rendering.patch
@@ -0,0 +1,37 @@
+https://gitlab.gnome.org/GNOME/gtk/-/commit/b686ce1cb62dba505120e0f1116c516662a06e30
+
+From b686ce1cb62dba505120e0f1116c516662a06e30 Mon Sep 17 00:00:00 2001
+From: Carlos Garnacho <carlosg@gnome.org>
+Date: Fri, 21 Apr 2023 10:58:19 +0200
+Subject: [PATCH] gdk/x11: Invalidate whole surface after size change
+
+The Expose events following a ConfigureNotify may arrive at
+a time that we did not resize the surface yet, making these
+expose events a no-op. Even though gsk/gtk take care of the
+window content itself, this might lead to unrendered portions
+of the window shadow.
+
+This may be seen with GSK_RENDERER=cairo and GDK_BACKEND=x11,
+attempting to tile a window (e.g. gtk4-demo) left or right.
+The window will show black rectangles or other artifacts in
+the window shadow areas that correspond to the newly painted
+portions (as the window needs to expand vertically).
+
+In order to fix this with a similar behavior to Wayland,
+consider ourselves the whole surface invalidated after resize,
+in order to ensure everything is painted from scratch.
+
+(cherry-picked from commit 24302315fb8f46be141a9eda60e8d107c84a948d)
+--- a/gdk/x11/gdksurface-x11.c
++++ b/gdk/x11/gdksurface-x11.c
+@@ -208,6 +208,8 @@ gdk_x11_surface_update_size (GdkX11Surface *self,
+ cairo_surface_set_device_scale (self->cairo_surface, scale, scale);
+ }
+
++ gdk_surface_invalidate_rect (surface, NULL);
++
+ return TRUE;
+ }
+
+--
+GitLab