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:
Michael Biebl
2016-10-01 12:36:19 +00:00
parent 364f2b32cc
commit 158ba9635f
4 changed files with 3 additions and 139 deletions

3
debian/changelog vendored
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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