Drop d/p/wayland-Avoid-negative-size-constraints.patch and
d/p/wayland-always-sync-state-after-a-frame-is-painted.patch, merged upstream.
This commit is contained in:
3
debian/changelog
vendored
3
debian/changelog
vendored
@ -1,6 +1,9 @@
|
||||
gtk+3.0 (3.22.1-1) UNRELEASED; urgency=medium
|
||||
|
||||
* New upstream release.
|
||||
* Drop d/p/wayland-Avoid-negative-size-constraints.patch and
|
||||
d/p/wayland-always-sync-state-after-a-frame-is-painted.patch, merged
|
||||
upstream.
|
||||
|
||||
-- Michael Biebl <biebl@debian.org> Sat, 01 Oct 2016 14:34:59 +0200
|
||||
|
||||
|
||||
3
debian/patches/series
vendored
3
debian/patches/series
vendored
@ -8,6 +8,3 @@
|
||||
no-accessibility-dump.patch
|
||||
reftest-known-fail.patch
|
||||
0001-Fix-division-by-zero-when-calculating-the-refresh-ra.patch
|
||||
|
||||
wayland-always-sync-state-after-a-frame-is-painted.patch
|
||||
wayland-Avoid-negative-size-constraints.patch
|
||||
|
||||
@ -1,93 +0,0 @@
|
||||
From dbd0923b5f7b4a7cdea182c8d20085c013c4571c Mon Sep 17 00:00:00 2001
|
||||
From: Olivier Fourdan <ofourdan@redhat.com>
|
||||
Date: Tue, 27 Sep 2016 16:48:57 +0200
|
||||
Subject: [PATCH] wayland: Avoid negative size constraints
|
||||
|
||||
Setting the shadow width earlier as done with commit 4cb1b96 to address
|
||||
bug 771561 proved to cause unexpected side effects on size_allocate
|
||||
signal propagation.
|
||||
|
||||
As the window is sized correctly earlier, the size_allocate signal is
|
||||
not emitted again in gtk_widget_size_allocate_with_baseline() which
|
||||
prevents clutter-gtk from relocating its child widget correctly.
|
||||
|
||||
To avoid this issue, revert commit 4cb1b96 but make sure the values
|
||||
passed as min and max size is never negative in Wayland as this is a
|
||||
protocol error.
|
||||
|
||||
With this, the min/max size will be wrong for a short amount of time,
|
||||
during the state transition, until the shadow width is updated from
|
||||
gdk_window_set_shadow_width().
|
||||
|
||||
This approach is much safer and less intrusive than changing the
|
||||
size_allocate logic in gtk.
|
||||
|
||||
This reverts commit 4cb1b9645e84054c059f174240e8e288c4befe05.
|
||||
|
||||
Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=771915
|
||||
---
|
||||
gdk/wayland/gdkwindow-wayland.c | 8 ++++----
|
||||
gtk/gtkwindow.c | 14 --------------
|
||||
2 files changed, 4 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
|
||||
index fa8dbe0..f35c4c8 100644
|
||||
--- a/gdk/wayland/gdkwindow-wayland.c
|
||||
+++ b/gdk/wayland/gdkwindow-wayland.c
|
||||
@@ -2992,8 +2992,8 @@ gdk_wayland_window_set_geometry_hints (GdkWindow *window,
|
||||
|
||||
if (geom_mask & GDK_HINT_MIN_SIZE)
|
||||
{
|
||||
- width = geometry->min_width - (impl->margin_left + impl->margin_right);
|
||||
- height = geometry->min_height - (impl->margin_top + impl->margin_bottom);
|
||||
+ width = MAX (0, geometry->min_width - (impl->margin_left + impl->margin_right));
|
||||
+ height = MAX (0, geometry->min_height - (impl->margin_top + impl->margin_bottom));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3005,8 +3005,8 @@ gdk_wayland_window_set_geometry_hints (GdkWindow *window,
|
||||
|
||||
if (geom_mask & GDK_HINT_MAX_SIZE)
|
||||
{
|
||||
- width = geometry->max_width - (impl->margin_left + impl->margin_right);
|
||||
- height = geometry->max_height - (impl->margin_top + impl->margin_bottom);
|
||||
+ width = MAX (0, geometry->max_width - (impl->margin_left + impl->margin_right));
|
||||
+ height = MAX (0, geometry->max_height - (impl->margin_top + impl->margin_bottom));
|
||||
}
|
||||
else
|
||||
{
|
||||
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
|
||||
index 14a11c3..1a4b14b 100644
|
||||
--- a/gtk/gtkwindow.c
|
||||
+++ b/gtk/gtkwindow.c
|
||||
@@ -7529,19 +7529,6 @@ update_window_style_classes (GtkWindow *window)
|
||||
}
|
||||
|
||||
static void
|
||||
-update_window_borders (GtkWindow *window)
|
||||
-{
|
||||
- GtkWindowPrivate *priv = window->priv;
|
||||
- GtkBorder window_border = { 0 };
|
||||
-
|
||||
- if (priv->client_decorated && priv->use_client_shadow)
|
||||
- {
|
||||
- get_shadow_width (window, &window_border);
|
||||
- update_shadow_width (window, &window_border);
|
||||
- }
|
||||
-}
|
||||
-
|
||||
-static void
|
||||
popover_size_allocate (GtkWidget *widget,
|
||||
GtkWindowPopover *popover,
|
||||
GtkWindow *window)
|
||||
@@ -7811,7 +7798,6 @@ gtk_window_state_event (GtkWidget *widget,
|
||||
{
|
||||
update_window_style_classes (window);
|
||||
update_window_buttons (window);
|
||||
- update_window_borders (window);
|
||||
gtk_widget_queue_resize (widget);
|
||||
}
|
||||
|
||||
--
|
||||
2.9.3
|
||||
|
||||
@ -1,43 +0,0 @@
|
||||
From 7292b035593008e79cf4aae1b8dcf0f7a83bc55f Mon Sep 17 00:00:00 2001
|
||||
From: Gustavo Noronha Silva <gustavo.noronha@collabora.co.uk>
|
||||
Date: Mon, 26 Sep 2016 10:56:42 +0200
|
||||
Subject: [PATCH] wayland: always sync state after a frame is painted
|
||||
|
||||
Opaque region, margin and input region were only being synced when a cairo
|
||||
paint happened. That caused GL paints to sometimes end up with bad state.
|
||||
Move calls to sync state to gdk_window_impl_wayland_end_paint.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=771553
|
||||
---
|
||||
gdk/wayland/gdkwindow-wayland.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
|
||||
index f35c4c8..7dbb979 100644
|
||||
--- a/gdk/wayland/gdkwindow-wayland.c
|
||||
+++ b/gdk/wayland/gdkwindow-wayland.c
|
||||
@@ -597,10 +597,6 @@ on_frame_clock_after_paint (GdkFrameClock *clock,
|
||||
if (impl->pending_buffer_attached)
|
||||
read_back_cairo_surface (window);
|
||||
|
||||
- gdk_wayland_window_sync_margin (window);
|
||||
- gdk_wayland_window_sync_opaque_region (window);
|
||||
- gdk_wayland_window_sync_input_region (window);
|
||||
-
|
||||
/* From this commit forward, we can't write to the buffer,
|
||||
* it's "live". In the future, if we need to stage more changes
|
||||
* we have to allocate a new staging buffer and draw to it instead.
|
||||
@@ -936,6 +932,10 @@ gdk_window_impl_wayland_end_paint (GdkWindow *window)
|
||||
|
||||
impl->pending_commit = TRUE;
|
||||
}
|
||||
+
|
||||
+ gdk_wayland_window_sync_margin (window);
|
||||
+ gdk_wayland_window_sync_opaque_region (window);
|
||||
+ gdk_wayland_window_sync_input_region (window);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
--
|
||||
2.9.3
|
||||
|
||||
Reference in New Issue
Block a user