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