r54528 - in /desktop/unstable/mutter/debian: ./ patches/
jbicha at users.alioth.debian.org
jbicha at users.alioth.debian.org
Sat Oct 21 23:46:48 UTC 2017
Author: jbicha
Date: Sat Oct 21 23:46:48 2017
New Revision: 54528
URL: http://svn.debian.org/wsvn/pkg-gnome/?sc=1&rev=54528
Log:
Cherry-pick more fixes from gnome-3-26 branch to fix crashes & unredirect
and fix unredirecting full-screen windows:
- 0012-x11-window-Don-t-manage-InputOnly-windows.patch
- 0013-compositor-Ignore-offscreen-windows.patch
(LP: #1725821)
- 0015-monitor-normal-Prefer-modes-with-same-flags.patch
- 0016-monitor-unit-tests-Check-non-first-preferred-modes.patch
(LP: #1725153)
- 0017-compositor-Avoid-a-crash-if-top-window-finalized.patch
- 0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch
- 0019-Revert-tests-Fix-actor-anchors-test.patch
Closes: #788140
Added:
desktop/unstable/mutter/debian/patches/0012-x11-window-Don-t-manage-InputOnly-windows.patch
desktop/unstable/mutter/debian/patches/0013-compositor-Ignore-offscreen-windows.patch
desktop/unstable/mutter/debian/patches/0015-monitor-normal-Prefer-modes-with-same-flags.patch
desktop/unstable/mutter/debian/patches/0016-monitor-unit-tests-Check-non-first-preferred-modes.patch
desktop/unstable/mutter/debian/patches/0017-compositor-Avoid-a-crash-if-top-window-finalized.patch
desktop/unstable/mutter/debian/patches/0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch
desktop/unstable/mutter/debian/patches/0019-Revert-tests-Fix-actor-anchors-test.patch
Modified:
desktop/unstable/mutter/debian/changelog
desktop/unstable/mutter/debian/patches/series
Modified: desktop/unstable/mutter/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/changelog?rev=54528&op=diff
==============================================================================
--- desktop/unstable/mutter/debian/changelog [utf-8] (original)
+++ desktop/unstable/mutter/debian/changelog [utf-8] Sat Oct 21 23:46:48 2017
@@ -1,6 +1,18 @@
mutter (3.26.1-6) UNRELEASED; urgency=medium
* debian/control.in: Bump libegl1-mesa-dev to (>= 17) (Closes: #878702)
+ * Cherry-pick more fixes from gnome-3-26 branch to fix crashes
+ and fix unredirecting full-screen windows:
+ - 0012-x11-window-Don-t-manage-InputOnly-windows.patch
+ - 0013-compositor-Ignore-offscreen-windows.patch
+ (LP: #1725821)
+ - 0015-monitor-normal-Prefer-modes-with-same-flags.patch
+ - 0016-monitor-unit-tests-Check-non-first-preferred-modes.patch
+ (LP: #1725153)
+ - 0017-compositor-Avoid-a-crash-if-top-window-finalized.patch
+ - 0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch
+ - 0019-Revert-tests-Fix-actor-anchors-test.patch
+ (Closes: #788140)
-- Jeremy Bicha <jbicha at debian.org> Mon, 16 Oct 2017 22:26:04 -0400
Added: desktop/unstable/mutter/debian/patches/0012-x11-window-Don-t-manage-InputOnly-windows.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/0012-x11-window-Don-t-manage-InputOnly-windows.patch?rev=54528&op=file
==============================================================================
--- desktop/unstable/mutter/debian/patches/0012-x11-window-Don-t-manage-InputOnly-windows.patch (added)
+++ desktop/unstable/mutter/debian/patches/0012-x11-window-Don-t-manage-InputOnly-windows.patch [utf-8] Sat Oct 21 23:46:48 2017
@@ -0,0 +1,33 @@
+From 49ee46d924e36c0d5defcbfcf71bd674e200ebae Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Sun, 15 Oct 2017 22:44:11 +0200
+Subject: [PATCH 12/18] x11/window: Don't manage InputOnly windows
+
+This was dropped by mistake in commit
+f166240225b6ab110b091520103d0370d51899ac.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=788493
+---
+ src/x11/window-x11.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
+index 4885f5fea..5a6f113b0 100644
+--- a/src/x11/window-x11.c
++++ b/src/x11/window-x11.c
+@@ -3039,6 +3039,12 @@ meta_window_x11_new (MetaDisplay *display,
+ goto error;
+ }
+
++ if (attrs.class == InputOnly)
++ {
++ meta_verbose ("Not managing InputOnly windows\n");
++ goto error;
++ }
++
+ if (is_our_xwindow (display, screen, xwindow, &attrs))
+ {
+ meta_verbose ("Not managing our own windows\n");
+--
+2.14.1
+
Added: desktop/unstable/mutter/debian/patches/0013-compositor-Ignore-offscreen-windows.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/0013-compositor-Ignore-offscreen-windows.patch?rev=54528&op=file
==============================================================================
--- desktop/unstable/mutter/debian/patches/0013-compositor-Ignore-offscreen-windows.patch (added)
+++ desktop/unstable/mutter/debian/patches/0013-compositor-Ignore-offscreen-windows.patch [utf-8] Sat Oct 21 23:46:48 2017
@@ -0,0 +1,116 @@
+From d71b0d3d272046a65013b1c77f289848f8ae4ffd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl at gmail.com>
+Date: Fri, 13 Oct 2017 16:29:20 +0800
+Subject: [PATCH 13/18] compositor: Ignore offscreen windows when unredirecting
+
+When determining whether we should unredirect a window or not, ignore
+offscreen windows, and just check the top most visible window.
+
+Previously this was not an issue, but since 'stack-tracker: Keep
+override redirect windows on top' we started sorting the UI frames
+window, which is an offscreen override redirect window, on top, causing
+the unredirect checking code to always check whether to unredirect the
+UI frames window. This effectively disabled the compositor bypass
+functionality.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=788493
+---
+ src/compositor/compositor-private.h | 2 ++
+ src/compositor/compositor.c | 47 ++++++++++++++++++++++++++++++++-----
+ 2 files changed, 43 insertions(+), 6 deletions(-)
+
+diff --git a/src/compositor/compositor-private.h b/src/compositor/compositor-private.h
+index ba58bf175..40c0344cc 100644
+--- a/src/compositor/compositor-private.h
++++ b/src/compositor/compositor-private.h
+@@ -31,6 +31,8 @@ struct _MetaCompositor
+
+ CoglContext *context;
+
++ MetaWindowActor *top_window_actor;
++
+ /* Used for unredirecting fullscreen windows */
+ guint disable_unredirect_count;
+ MetaWindow *unredirected_window;
+diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
+index 17e8a55dd..a75ac12c5 100644
+--- a/src/compositor/compositor.c
++++ b/src/compositor/compositor.c
+@@ -923,6 +923,32 @@ sync_actor_stacking (MetaCompositor *compositor)
+ g_list_free (backgrounds);
+ }
+
++/*
++ * Find the top most window that is visible on the screen. The intention of
++ * this is to avoid offscreen windows that isn't actually part of the visible
++ * desktop (such as the UI frames override redirect window).
++ */
++static MetaWindowActor *
++get_top_visible_window_actor (MetaCompositor *compositor)
++{
++ GList *l;
++
++ for (l = g_list_last (compositor->windows); l; l = l->prev)
++ {
++ MetaWindowActor *window_actor = l->data;
++ MetaWindow *window = meta_window_actor_get_meta_window (window_actor);
++ MetaRectangle buffer_rect;
++
++ meta_window_get_buffer_rect (window, &buffer_rect);
++
++ if (meta_rectangle_overlap (&compositor->display->screen->rect,
++ &buffer_rect))
++ return window_actor;
++ }
++
++ return NULL;
++}
++
+ void
+ meta_compositor_sync_stack (MetaCompositor *compositor,
+ GList *stack)
+@@ -1009,6 +1035,8 @@ meta_compositor_sync_stack (MetaCompositor *compositor,
+ }
+
+ sync_actor_stacking (compositor);
++
++ compositor->top_window_actor = get_top_visible_window_actor (compositor);
+ }
+
+ void
+@@ -1065,19 +1093,26 @@ static gboolean
+ meta_pre_paint_func (gpointer data)
+ {
+ GList *l;
+- MetaWindowActor *top_window;
++ MetaWindowActor *top_window_actor;
+ MetaCompositor *compositor = data;
+
+ if (compositor->windows == NULL)
+ return TRUE;
+
+- top_window = g_list_last (compositor->windows)->data;
+-
+- if (meta_window_actor_should_unredirect (top_window) &&
++ top_window_actor = compositor->top_window_actor;
++ if (top_window_actor &&
++ meta_window_actor_should_unredirect (top_window_actor) &&
+ compositor->disable_unredirect_count == 0)
+- set_unredirected_window (compositor, meta_window_actor_get_meta_window (top_window));
++ {
++ MetaWindow *top_window;
++
++ top_window = meta_window_actor_get_meta_window (top_window_actor);
++ set_unredirected_window (compositor, top_window);
++ }
+ else
+- set_unredirected_window (compositor, NULL);
++ {
++ set_unredirected_window (compositor, NULL);
++ }
+
+ for (l = compositor->windows; l; l = l->next)
+ meta_window_actor_pre_paint (l->data);
+--
+2.14.1
+
Added: desktop/unstable/mutter/debian/patches/0015-monitor-normal-Prefer-modes-with-same-flags.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/0015-monitor-normal-Prefer-modes-with-same-flags.patch?rev=54528&op=file
==============================================================================
--- desktop/unstable/mutter/debian/patches/0015-monitor-normal-Prefer-modes-with-same-flags.patch (added)
+++ desktop/unstable/mutter/debian/patches/0015-monitor-normal-Prefer-modes-with-same-flags.patch [utf-8] Sat Oct 21 23:46:48 2017
@@ -0,0 +1,119 @@
+From c0dc66e8c0dfc6ab02506343dc8418891159657c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl at gmail.com>
+Date: Wed, 18 Oct 2017 23:22:01 +0800
+Subject: [PATCH 15/18] monitor/normal: Prefer modes with same flags as
+ preferred mode
+
+When generating MetaMonitorMode's, prefer CRTC modes that has the same
+set of flags as the preferred mode. This not only is probably a better
+set of configurable modes, but it'll guarantee that the preferred mode
+is added.
+
+This fixes a crash when the preferred mode was not the first mode with
+the same resolution, refresh rate and set of handled modes.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=789153
+---
+ src/backends/meta-monitor.c | 41 ++++++++++++++++++++++++++++++++---------
+ 1 file changed, 32 insertions(+), 9 deletions(-)
+
+diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
+index 8ca6ea859..2d06a1e36 100644
+--- a/src/backends/meta-monitor.c
++++ b/src/backends/meta-monitor.c
+@@ -394,16 +394,22 @@ generate_mode_id (MetaMonitorModeSpec *monitor_mode_spec)
+
+ static gboolean
+ meta_monitor_add_mode (MetaMonitor *monitor,
+- MetaMonitorMode *monitor_mode)
++ MetaMonitorMode *monitor_mode,
++ gboolean replace)
+ {
+ MetaMonitorPrivate *priv = meta_monitor_get_instance_private (monitor);
++ MetaMonitorMode *existing_mode;
+
+- if (g_hash_table_lookup (priv->mode_ids,
+- meta_monitor_mode_get_id (monitor_mode)))
++ existing_mode = g_hash_table_lookup (priv->mode_ids,
++ meta_monitor_mode_get_id (monitor_mode));
++ if (existing_mode && !replace)
+ return FALSE;
+
++ if (existing_mode)
++ priv->modes = g_list_remove (priv->modes, existing_mode);
++
+ priv->modes = g_list_append (priv->modes, monitor_mode);
+- g_hash_table_insert (priv->mode_ids, monitor_mode->id, monitor_mode);
++ g_hash_table_replace (priv->mode_ids, monitor_mode->id, monitor_mode);
+
+ return TRUE;
+ }
+@@ -415,13 +421,17 @@ meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
+ MetaMonitorPrivate *monitor_priv =
+ meta_monitor_get_instance_private (monitor);
+ MetaOutput *output;
++ MetaCrtcModeFlag preferred_mode_flags;
+ unsigned int i;
+
+ output = meta_monitor_get_main_output (monitor);
++ preferred_mode_flags = output->preferred_mode->flags;
++
+ for (i = 0; i < output->n_modes; i++)
+ {
+ MetaCrtcMode *crtc_mode = output->modes[i];
+ MetaMonitorMode *mode;
++ gboolean replace;
+
+ mode = g_new0 (MetaMonitorMode, 1);
+ mode->spec = (MetaMonitorModeSpec) {
+@@ -437,13 +447,26 @@ meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
+ .crtc_mode = crtc_mode
+ };
+
++ /*
++ * We don't distinguish between all available mode flags, just the ones
++ * that are configurable. We still need to pick some mode though, so
++ * prefer ones that has the same set of flags as the preferred mode;
++ * otherwise take the first one in the list. This guarantees that the
++ * preferred mode is always added.
++ */
++ replace = crtc_mode->flags == preferred_mode_flags;
++
++ if (!meta_monitor_add_mode (monitor, mode, replace))
++ {
++ g_assert (crtc_mode != output->preferred_mode);
++ meta_monitor_mode_free (mode);
++ continue;
++ }
++
+ if (crtc_mode == output->preferred_mode)
+ monitor_priv->preferred_mode = mode;
+ if (output->crtc && crtc_mode == output->crtc->current_mode)
+ monitor_priv->current_mode = mode;
+-
+- if (!meta_monitor_add_mode (monitor, mode))
+- meta_monitor_mode_free (mode);
+ }
+ }
+
+@@ -825,7 +848,7 @@ generate_tiled_monitor_modes (MetaMonitorTiled *monitor_tiled)
+
+ tiled_modes = g_list_remove_link (tiled_modes, l);
+
+- if (!meta_monitor_add_mode (monitor, mode))
++ if (!meta_monitor_add_mode (monitor, mode, FALSE))
+ {
+ meta_monitor_mode_free (mode);
+ continue;
+@@ -967,7 +990,7 @@ generate_untiled_monitor_modes (MetaMonitorTiled *monitor_tiled)
+ if (!mode)
+ continue;
+
+- if (!meta_monitor_add_mode (monitor, mode))
++ if (!meta_monitor_add_mode (monitor, mode, FALSE))
+ {
+ meta_monitor_mode_free (mode);
+ continue;
+--
+2.14.1
+
Added: desktop/unstable/mutter/debian/patches/0016-monitor-unit-tests-Check-non-first-preferred-modes.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/0016-monitor-unit-tests-Check-non-first-preferred-modes.patch?rev=54528&op=file
==============================================================================
--- desktop/unstable/mutter/debian/patches/0016-monitor-unit-tests-Check-non-first-preferred-modes.patch (added)
+++ desktop/unstable/mutter/debian/patches/0016-monitor-unit-tests-Check-non-first-preferred-modes.patch [utf-8] Sat Oct 21 23:46:48 2017
@@ -0,0 +1,169 @@
+From 297027b8cb7a259907e4be190de1c4a44aa83593 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl at gmail.com>
+Date: Wed, 18 Oct 2017 23:24:36 +0800
+Subject: [PATCH 16/18] monitor-unit-tests: Check non-first preferred modes
+
+Check that if there are multiple modes with the same ID (resolution,
+refresh rate and handled flags) we correctly add the preferred mode to
+the list of monitor modes.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=789153
+---
+ src/backends/meta-monitor.c | 2 -
+ src/backends/meta-monitor.h | 2 +
+ src/tests/monitor-unit-tests.c | 99 +++++++++++++++++++++++++++++++++++++++++-
+ 3 files changed, 100 insertions(+), 3 deletions(-)
+
+diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
+index 2d06a1e36..f9233251c 100644
+--- a/src/backends/meta-monitor.c
++++ b/src/backends/meta-monitor.c
+@@ -34,8 +34,6 @@
+ #define MINIMUM_LOGICAL_HEIGHT 600
+ #define MAXIMUM_REFRESH_RATE_DIFF 0.001
+
+-#define HANDLED_CRTC_MODE_FLAGS (META_CRTC_MODE_FLAG_INTERLACE)
+-
+ typedef struct _MetaMonitorMode
+ {
+ char *id;
+diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h
+index f4260d61f..e6f394b07 100644
+--- a/src/backends/meta-monitor.h
++++ b/src/backends/meta-monitor.h
+@@ -48,6 +48,8 @@ typedef struct _MetaMonitorCrtcMode
+ MetaCrtcMode *crtc_mode;
+ } MetaMonitorCrtcMode;
+
++#define HANDLED_CRTC_MODE_FLAGS (META_CRTC_MODE_FLAG_INTERLACE)
++
+ typedef gboolean (* MetaMonitorModeFunc) (MetaMonitor *monitor,
+ MetaMonitorMode *mode,
+ MetaMonitorCrtcMode *monitor_crtc_mode,
+diff --git a/src/tests/monitor-unit-tests.c b/src/tests/monitor-unit-tests.c
+index b2d18c48b..e65c30291 100644
+--- a/src/tests/monitor-unit-tests.c
++++ b/src/tests/monitor-unit-tests.c
+@@ -419,7 +419,7 @@ check_monitor_mode (MetaMonitor *monitor,
+ flags = meta_monitor_mode_get_flags (mode);
+
+ g_assert_cmpfloat (refresh_rate, ==, crtc_mode->refresh_rate);
+- g_assert_cmpint (flags, ==, crtc_mode->flags);
++ g_assert_cmpint (flags, ==, (crtc_mode->flags & HANDLED_CRTC_MODE_FLAGS));
+ }
+
+ data->expect_crtc_mode_iter++;
+@@ -2730,6 +2730,101 @@ meta_test_monitor_underscanning_config (void)
+ check_monitor_configuration (&test_case);
+ }
+
++static void
++meta_test_monitor_preferred_non_first_mode (void)
++{
++ MonitorTestCase test_case = {
++ .setup = {
++ .modes = {
++ {
++ .width = 800,
++ .height = 600,
++ .refresh_rate = 60.0,
++ .flags = META_CRTC_MODE_FLAG_NHSYNC,
++ },
++ {
++ .width = 800,
++ .height = 600,
++ .refresh_rate = 60.0,
++ .flags = META_CRTC_MODE_FLAG_PHSYNC,
++ },
++ },
++ .n_modes = 2,
++ .outputs = {
++ {
++ .crtc = -1,
++ .modes = { 0, 1 },
++ .n_modes = 2,
++ .preferred_mode = 1,
++ .possible_crtcs = { 0 },
++ .n_possible_crtcs = 1,
++ .width_mm = 222,
++ .height_mm = 125
++ }
++ },
++ .n_outputs = 1,
++ .crtcs = {
++ {
++ .current_mode = -1
++ }
++ },
++ .n_crtcs = 1
++ },
++
++ .expect = {
++ .monitors = {
++ {
++ .outputs = { 0 },
++ .n_outputs = 1,
++ .modes = {
++ {
++ .width = 800,
++ .height = 600,
++ .refresh_rate = 60.0,
++ .crtc_modes = {
++ {
++ .output = 0,
++ .crtc_mode = 1
++ }
++ }
++ },
++ },
++ .n_modes = 1,
++ .current_mode = 0,
++ .width_mm = 222,
++ .height_mm = 125
++ }
++ },
++ .n_monitors = 1,
++ .logical_monitors = {
++ {
++ .monitors = { 0 },
++ .n_monitors = 1,
++ .layout = { .x = 0, .y = 0, .width = 800, .height = 600 },
++ .scale = 1
++ },
++ },
++ .n_logical_monitors = 1,
++ .primary_logical_monitor = 0,
++ .n_outputs = 1,
++ .crtcs = {
++ {
++ .current_mode = 1,
++ }
++ },
++ .n_crtcs = 1,
++ .screen_width = 800,
++ .screen_height = 600,
++ }
++ };
++ MetaMonitorTestSetup *test_setup;
++
++ test_setup = create_monitor_test_setup (&test_case,
++ MONITOR_TEST_FLAG_NO_STORED);
++ emulate_hotplug (test_setup);
++ check_monitor_configuration (&test_case);
++}
++
+ static void
+ meta_test_monitor_custom_vertical_config (void)
+ {
+@@ -5317,6 +5412,8 @@ init_monitor_tests (void)
+ meta_test_monitor_no_outputs);
+ add_monitor_test ("/backends/monitor/underscanning-config",
+ meta_test_monitor_underscanning_config);
++ add_monitor_test ("/backends/monitor/preferred-non-first-mode",
++ meta_test_monitor_preferred_non_first_mode);
+
+ add_monitor_test ("/backends/monitor/custom/vertical-config",
+ meta_test_monitor_custom_vertical_config);
+--
+2.14.1
+
Added: desktop/unstable/mutter/debian/patches/0017-compositor-Avoid-a-crash-if-top-window-finalized.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/0017-compositor-Avoid-a-crash-if-top-window-finalized.patch?rev=54528&op=file
==============================================================================
--- desktop/unstable/mutter/debian/patches/0017-compositor-Avoid-a-crash-if-top-window-finalized.patch (added)
+++ desktop/unstable/mutter/debian/patches/0017-compositor-Avoid-a-crash-if-top-window-finalized.patch [utf-8] Sat Oct 21 23:46:48 2017
@@ -0,0 +1,31 @@
+From 6eacf9a398da3db6152566abe5cc6b6e0afd9a3d Mon Sep 17 00:00:00 2001
+From: Rui Matos <tiagomatos at gmail.com>
+Date: Tue, 17 Oct 2017 17:17:55 +0200
+Subject: [PATCH 17/18] compositor: Avoid a crash if the top window actor is
+ finalized
+
+Since we're not holding a reference, the top window actor might be
+finalized when we paint resulting in a use after free crash.
+
+https://bugzilla.gnome.org/show_bug.cgi?id=788493
+---
+ src/compositor/compositor.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/compositor/compositor.c b/src/compositor/compositor.c
+index a75ac12c5..1d5b9ab20 100644
+--- a/src/compositor/compositor.c
++++ b/src/compositor/compositor.c
+@@ -671,6 +671,9 @@ meta_compositor_remove_window (MetaCompositor *compositor,
+ if (compositor->unredirected_window == window)
+ set_unredirected_window (compositor, NULL);
+
++ if (compositor->top_window_actor == window_actor)
++ compositor->top_window_actor = NULL;
++
+ meta_window_actor_destroy (window_actor);
+ }
+
+--
+2.14.1
+
Added: desktop/unstable/mutter/debian/patches/0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch?rev=54528&op=file
==============================================================================
--- desktop/unstable/mutter/debian/patches/0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch (added)
+++ desktop/unstable/mutter/debian/patches/0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch [utf-8] Sat Oct 21 23:46:48 2017
@@ -0,0 +1,47 @@
+From 193216c2a7b9196fe3ce69192d94bf2995814113 Mon Sep 17 00:00:00 2001
+From: Michael Catanzaro <mcatanzaro at igalia.com>
+Date: Thu, 19 Oct 2017 19:53:13 -0500
+Subject: [PATCH 18/18] Revert "ClutterActor: Optimize away idempotent
+ scale/position updates"
+
+This reverts commit 5cb5baa7d42712f9e0db8dfaa0485e2d833e4d83.
+
+There's a cascade of regressions that needs to be sorted out before
+relanding this:
+
+https://bugzilla.gnome.org/show_bug.cgi?id=784314
+---
+ clutter/clutter/clutter-actor.c | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
+index dbb202f9c..6954f0396 100644
+--- a/clutter/clutter/clutter-actor.c
++++ b/clutter/clutter/clutter-actor.c
+@@ -4828,8 +4828,7 @@ clutter_actor_set_scale_factor (ClutterActor *self,
+ g_assert (pspec != NULL);
+ g_assert (scale_p != NULL);
+
+- if (*scale_p != factor)
+- _clutter_actor_create_transition (self, pspec, *scale_p, factor);
++ _clutter_actor_create_transition (self, pspec, *scale_p, factor);
+ }
+
+ static inline void
+@@ -10264,10 +10263,9 @@ clutter_actor_set_position (ClutterActor *self,
+ cur_position.x = clutter_actor_get_x (self);
+ cur_position.y = clutter_actor_get_y (self);
+
+- if (!clutter_point_equals (&cur_position, &new_position))
+- _clutter_actor_create_transition (self, obj_props[PROP_POSITION],
+- &cur_position,
+- &new_position);
++ _clutter_actor_create_transition (self, obj_props[PROP_POSITION],
++ &cur_position,
++ &new_position);
+ }
+
+ /**
+--
+2.14.1
+
Added: desktop/unstable/mutter/debian/patches/0019-Revert-tests-Fix-actor-anchors-test.patch
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/0019-Revert-tests-Fix-actor-anchors-test.patch?rev=54528&op=file
==============================================================================
--- desktop/unstable/mutter/debian/patches/0019-Revert-tests-Fix-actor-anchors-test.patch (added)
+++ desktop/unstable/mutter/debian/patches/0019-Revert-tests-Fix-actor-anchors-test.patch [utf-8] Sat Oct 21 23:46:48 2017
@@ -0,0 +1,29 @@
+From 79fe635f5f94db96c9ee6a0da7becc8b283b4689 Mon Sep 17 00:00:00 2001
+From: Jeremy Bicha <jbicha at ubuntu.com>
+Date: Sat, 21 Oct 2017 18:58:37 -0400
+Subject: [PATCH] Revert "tests: Fix actor-anchors test"
+
+This reverts commit dd451547a5e7bcce6d9752cb1936ee8222b82315.
+
+since we reverted commit 5cb5baa with commit 193216c
+---
+ clutter/tests/conform/actor-anchors.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/clutter/tests/conform/actor-anchors.c b/clutter/tests/conform/actor-anchors.c
+index 55395880b..ee3b6a5e6 100644
+--- a/clutter/tests/conform/actor-anchors.c
++++ b/clutter/tests/conform/actor-anchors.c
+@@ -407,7 +407,8 @@ test_scale_center (TestState *state)
+ g_assert (scale_x == 4.0);
+ g_assert (scale_y == 2.0);
+ g_assert (gravity == CLUTTER_GRAVITY_NONE);
+- assert_notifications (NOTIFY_SCALE_CENTER_X | NOTIFY_SCALE_CENTER_Y
++ assert_notifications (NOTIFY_SCALE_X | NOTIFY_SCALE_Y
++ | NOTIFY_SCALE_CENTER_X | NOTIFY_SCALE_CENTER_Y
+ | NOTIFY_SCALE_GRAVITY);
+ assert_coords (state, 100 + 10 - 10 * 4, 200 + 20 - 20 * 2,
+ 100 + 10 + (RECT_WIDTH - 10) * 4,
+--
+2.14.1
+
Modified: desktop/unstable/mutter/debian/patches/series
URL: http://svn.debian.org/wsvn/pkg-gnome/desktop/unstable/mutter/debian/patches/series?rev=54528&op=diff
==============================================================================
--- desktop/unstable/mutter/debian/patches/series [utf-8] (original)
+++ desktop/unstable/mutter/debian/patches/series [utf-8] Sat Oct 21 23:46:48 2017
@@ -8,4 +8,11 @@
0009-monitor-manager-use-g_return_val_if_fail-if-trying-t.patch
0010-backend-move-the-cursor-render-update-on-screen-chan.patch
0011-workspace-ensure-that-workarea-data-is-valid-when-fe.patch
+0012-x11-window-Don-t-manage-InputOnly-windows.patch
+0013-compositor-Ignore-offscreen-windows.patch
0014-Use-a-single-supported-scales.patch
+0015-monitor-normal-Prefer-modes-with-same-flags.patch
+0016-monitor-unit-tests-Check-non-first-preferred-modes.patch
+0017-compositor-Avoid-a-crash-if-top-window-finalized.patch
+0018-Revert-ClutterActor-Optimize-away-idempotent-scale.patch
+0019-Revert-tests-Fix-actor-anchors-test.patch
More information about the pkg-gnome-commits
mailing list