Apply proposed patches to fix Wayland window-sizing regressions
Hopefully resolves #955820.
This commit is contained in:
parent
7fd6ba301a
commit
a2ddcb0915
12
debian/changelog
vendored
12
debian/changelog
vendored
@ -1,3 +1,15 @@
|
||||
gtk+3.0 (3.24.17-2) UNRELEASED; urgency=medium
|
||||
|
||||
* d/p/Do-not-require-an-initial-configure-for-custom-Wayland-su.patch,
|
||||
d/p/Do-not-require-an-initial-configure-for-DnD-windows.patch:
|
||||
Apply patches from upstream gtk-3-24 branch to fix some Wayland
|
||||
window-sizing regressions (partially resolves: #955820)
|
||||
* d/p/wayland-don-t-call-gdk_wayland_window_configure-without-v.patch:
|
||||
Apply a patch proposed upstream to fix additional Wayland window-sizing
|
||||
regressions (hopefully resolves the rest of #955820)
|
||||
|
||||
-- Simon McVittie <smcv@debian.org> Sun, 05 Apr 2020 20:12:51 +0100
|
||||
|
||||
gtk+3.0 (3.24.17-1) unstable; urgency=medium
|
||||
|
||||
* Team upload
|
||||
|
27
debian/patches/Do-not-require-an-initial-configure-for-DnD-windows.patch
vendored
Normal file
27
debian/patches/Do-not-require-an-initial-configure-for-DnD-windows.patch
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
From: William Wold <wm@wmww.sh>
|
||||
Date: Sun, 5 Apr 2020 07:11:45 -0400
|
||||
Subject: Do not require an initial configure for DnD windows
|
||||
|
||||
Fixes #2075
|
||||
|
||||
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/2575
|
||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955820
|
||||
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1633
|
||||
Applied-upstream: 3.24.18, commit:5a52af20cba76474e631b2a7548963bcad22d66d
|
||||
---
|
||||
gdk/wayland/gdkwindow-wayland.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
|
||||
index 5f39c57..0450650 100644
|
||||
--- a/gdk/wayland/gdkwindow-wayland.c
|
||||
+++ b/gdk/wayland/gdkwindow-wayland.c
|
||||
@@ -1089,6 +1089,8 @@ needs_initial_configure (GdkWindow *window)
|
||||
return FALSE;
|
||||
else if (impl->use_custom_surface)
|
||||
return FALSE;
|
||||
+ else if (impl->hint == GDK_WINDOW_TYPE_HINT_DND)
|
||||
+ return FALSE;
|
||||
else if (is_realized_toplevel (window))
|
||||
return TRUE;
|
||||
else if (is_realized_popup (window))
|
28
debian/patches/Do-not-require-an-initial-configure-for-custom-Wayland-su.patch
vendored
Normal file
28
debian/patches/Do-not-require-an-initial-configure-for-custom-Wayland-su.patch
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
From: William Wold <wm@wmww.sh>
|
||||
Date: Sun, 5 Apr 2020 05:26:24 -0400
|
||||
Subject: Do not require an initial configure for custom Wayland surfaces
|
||||
|
||||
There is no way for custom Wayland surfaces to get configure events, so an
|
||||
initial configure event should not be required to resize a custom surface.
|
||||
|
||||
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/2578
|
||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955820
|
||||
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1633
|
||||
Applied-upstream: 3.24.18, commit:12fc9a45efcbb546eb7de13c5c4d3183f2f5a3b8
|
||||
---
|
||||
gdk/wayland/gdkwindow-wayland.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
|
||||
index eba8361..5f39c57 100644
|
||||
--- a/gdk/wayland/gdkwindow-wayland.c
|
||||
+++ b/gdk/wayland/gdkwindow-wayland.c
|
||||
@@ -1087,6 +1087,8 @@ needs_initial_configure (GdkWindow *window)
|
||||
|
||||
if (impl->display_server.wl_subsurface)
|
||||
return FALSE;
|
||||
+ else if (impl->use_custom_surface)
|
||||
+ return FALSE;
|
||||
else if (is_realized_toplevel (window))
|
||||
return TRUE;
|
||||
else if (is_realized_popup (window))
|
3
debian/patches/series
vendored
3
debian/patches/series
vendored
@ -8,3 +8,6 @@ reftest-known-fail.patch
|
||||
Disable-accessibility-dump-aka-a11ytests-test.patch
|
||||
updateiconcache-Sort-list-of-entries.patch
|
||||
build-Generate-gdk.gresource.xml-in-sorted-order.patch
|
||||
Do-not-require-an-initial-configure-for-custom-Wayland-su.patch
|
||||
Do-not-require-an-initial-configure-for-DnD-windows.patch
|
||||
wayland-don-t-call-gdk_wayland_window_configure-without-v.patch
|
||||
|
41
debian/patches/wayland-don-t-call-gdk_wayland_window_configure-without-v.patch
vendored
Normal file
41
debian/patches/wayland-don-t-call-gdk_wayland_window_configure-without-v.patch
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
From: Jonas Witschel <diabonas@archlinux.org>
|
||||
Date: Sun, 5 Apr 2020 20:16:52 +0200
|
||||
Subject: wayland: don't call gdk_wayland_window_configure without valid size
|
||||
|
||||
Commit 7f12dc2b66bba15b2e1c0ca077fa4ae58962ec0f ("wayland: Postpone
|
||||
window resize requests until configured") runs
|
||||
gdk_wayland_window_configure unconditionally even if no valid size is
|
||||
set. This breaks GtkDialogs, which are not shown any more, and results
|
||||
in warnings like
|
||||
|
||||
gtk_widget_size_allocate(): attempt to allocate widget with width -3 and
|
||||
height -3
|
||||
|
||||
Bug: https://gitlab.gnome.org/GNOME/gtk/-/issues/2574
|
||||
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=955820
|
||||
Forwarded: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/1634
|
||||
Applied-upstream: no
|
||||
---
|
||||
gdk/wayland/gdkwindow-wayland.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
|
||||
index 0450650..2dfe6f1 100644
|
||||
--- a/gdk/wayland/gdkwindow-wayland.c
|
||||
+++ b/gdk/wayland/gdkwindow-wayland.c
|
||||
@@ -1639,10 +1639,11 @@ gdk_wayland_window_handle_configure (GdkWindow *window,
|
||||
}
|
||||
else
|
||||
{
|
||||
- gdk_wayland_window_configure (window,
|
||||
- impl->unconfigured_width,
|
||||
- impl->unconfigured_height,
|
||||
- impl->scale);
|
||||
+ if (impl->unconfigured_width > 0 && impl->unconfigured_height > 0)
|
||||
+ gdk_wayland_window_configure (window,
|
||||
+ impl->unconfigured_width,
|
||||
+ impl->unconfigured_height,
|
||||
+ impl->scale);
|
||||
}
|
||||
|
||||
if (fixed_size)
|
Loading…
Reference in New Issue
Block a user