Add patch from upstream to fix crashes in X11 drag & drop
This adds a missing error trap to prevent crashes. The X11 functions called here cannot normally fail, but it seems they can fail in certain configurations of the NVIDIA proprietary driver. LP: #1911036
This commit is contained in:
parent
14aa29ea25
commit
6d65f347da
1
debian/patches/series
vendored
1
debian/patches/series
vendored
@ -1,6 +1,7 @@
|
||||
gdk-wayland-Mark-matched-settings-from-the-portal-as-vali.patch
|
||||
gdk-wayland-Look-for-font-settings-recursively.patch
|
||||
updateiconcache-Sort-list-of-entries.patch
|
||||
x11-dnd-Ignore-XErrors-from-the-COW.patch
|
||||
gdk-Don-t-distribute-generated-files-in-tarballs.patch
|
||||
gtk-Really-don-t-distribute-built-files.patch
|
||||
demos-examples-tests-Don-t-distribute-built-files.patch
|
||||
|
36
debian/patches/x11-dnd-Ignore-XErrors-from-the-COW.patch
vendored
Normal file
36
debian/patches/x11-dnd-Ignore-XErrors-from-the-COW.patch
vendored
Normal file
@ -0,0 +1,36 @@
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Mon, 22 Mar 2021 15:19:33 +0100
|
||||
Subject: x11/dnd: Ignore XErrors from the COW
|
||||
|
||||
The DnD code for X11 adds the composite overlay window (aka COW) to the
|
||||
cache.
|
||||
|
||||
Yet the X11 requests to get and release the COW may trigger XErrors that
|
||||
we ought to ignore otherwise the client will abort.
|
||||
|
||||
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/3715
|
||||
Bug-Ubuntu: https://launchpad.net/bugs/1911036
|
||||
Origin: upstream, 3.24.28, commit:39db78470452cf0b1a7d1ee196de3f20eea85d33
|
||||
---
|
||||
gdk/x11/gdkdnd-x11.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/gdk/x11/gdkdnd-x11.c b/gdk/x11/gdkdnd-x11.c
|
||||
index e07fa10..113d0a8 100644
|
||||
--- a/gdk/x11/gdkdnd-x11.c
|
||||
+++ b/gdk/x11/gdkdnd-x11.c
|
||||
@@ -634,12 +634,14 @@ gdk_window_cache_new (GdkScreen *screen)
|
||||
*/
|
||||
if (gdk_screen_is_composited (screen))
|
||||
{
|
||||
+ gdk_x11_display_error_trap_push (GDK_X11_SCREEN (screen)->display);
|
||||
cow = XCompositeGetOverlayWindow (xdisplay, GDK_WINDOW_XID (root_window));
|
||||
gdk_window_cache_add (result, cow, 0, 0,
|
||||
gdk_x11_screen_get_width (screen) * GDK_X11_SCREEN(screen)->window_scale,
|
||||
gdk_x11_screen_get_height (screen) * GDK_X11_SCREEN(screen)->window_scale,
|
||||
TRUE);
|
||||
XCompositeReleaseOverlayWindow (xdisplay, GDK_WINDOW_XID (root_window));
|
||||
+ gdk_x11_display_error_trap_pop_ignored (GDK_X11_SCREEN (screen)->display);
|
||||
}
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user