[arch-commits] Commit in mutter/repos/extra-x86_64 (6 files)

Jan Steffens heftig at archlinux.org
Tue Apr 2 19:13:40 UTC 2019


    Date: Tuesday, April 2, 2019 @ 19:13:39
  Author: heftig
Revision: 349705

archrelease: copy trunk to extra-x86_64

Added:
  mutter/repos/extra-x86_64/0001-wayland-output-Report-unscaled-size-even-in-logical-.patch
    (from rev 349704, mutter/trunk/0001-wayland-output-Report-unscaled-size-even-in-logical-.patch)
  mutter/repos/extra-x86_64/216.patch
    (from rev 349704, mutter/trunk/216.patch)
  mutter/repos/extra-x86_64/PKGBUILD
    (from rev 349704, mutter/trunk/PKGBUILD)
Deleted:
  mutter/repos/extra-x86_64/0001-wayland-output-Report-unscaled-size-even-in-logical-.patch
  mutter/repos/extra-x86_64/216.patch
  mutter/repos/extra-x86_64/PKGBUILD

-----------------------------------------------------------------+
 0001-wayland-output-Report-unscaled-size-even-in-logical-.patch |  294 +++++-----
 216.patch                                                       |  256 ++++----
 PKGBUILD                                                        |  118 ++--
 3 files changed, 334 insertions(+), 334 deletions(-)

Deleted: 0001-wayland-output-Report-unscaled-size-even-in-logical-.patch
===================================================================
--- 0001-wayland-output-Report-unscaled-size-even-in-logical-.patch	2019-04-02 19:02:56 UTC (rev 349704)
+++ 0001-wayland-output-Report-unscaled-size-even-in-logical-.patch	2019-04-02 19:13:39 UTC (rev 349705)
@@ -1,147 +0,0 @@
-From 761000ec8f4b53d0fa06f235be2ed30b80ec5bcb Mon Sep 17 00:00:00 2001
-Message-Id: <761000ec8f4b53d0fa06f235be2ed30b80ec5bcb.1553890447.git.jan.steffens at gmail.com>
-From: "Jan Alexander Steffens (heftig)" <jan.steffens at gmail.com>
-Date: Wed, 27 Mar 2019 00:38:02 +0100
-Subject: [PATCH] wayland/output: Report unscaled size even in logical layout
- mode
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-In physical layout mode, the size and scale of the `wl_output` matches
-the actual monitor:
-
-| Monitor      | `wl_output`  | `GdkMonitor` |
-| ------------ | ------------ | ------------ |
-| 3840×2160 @1 | 3840×2160 @1 | 3840×2160 @1 |
-| 3840×2160 @2 | 3840×2160 @2 | 1920×1080 @2 |
-
-GTK currently does not support `xdg_output`. To estimate the logical
-output size for `GdkMonitor`, it divides the output's size by its scale
-factor. There might be other legacy clients making the same assumption.
-
-In logical layout mode, mutter currently reports logical geometry for
-the `wl_output`s, but this no longer matches the monitors:
-
-| Monitor        | `wl_output`  | `GdkMonitor` |
-| -------------- | ------------ | ------------ |
-| 3840×2160 @1   | 3840×2160 @1 | 3840×2160 @1 |
-| 3840×2160 @2   | 1920×1080 @2 |  960×540  @2 |
-| 3840×2160 @1.5 | 2560×1440 @2 | 1280×720  @2 |
-
-This patch changes logical layout mode to multiply the sizes by the
-`wl_output`'s scale factor before sending them to the client. Now the
-sizes match the physical layout mode again:
-
-| Monitor        | `wl_output`  | `GdkMonitor` |
-| -------------- | ------------ | ------------ |
-| 3840×2160 @1   | 3840×2160 @1 | 3840×2160 @1 |
-| 3840×2160 @2   | 3840×2160 @2 | 1920×1080 @2 |
-| 3840×2160 @1.5 | 5120×2880 @2 | 2560×1440 @2 |
-
-Unfortunately, non-integer output scales are not representable in
-`wl_output`. Still, I believe these values are better than before, and
-the best we can do for clients that do not know about `xdg_output`: The
-size of the output will match the size that a buffer for a fullscreen
-surface should have at the indicated scale.
-
-Fixes part of https://bugzilla.mozilla.org/show_bug.cgi?id=1534089
-https://gitlab.gnome.org/GNOME/mutter/merge_requests/510
----
- src/wayland/meta-wayland-outputs.c | 33 +++++++++++++++++++-----------
- 1 file changed, 21 insertions(+), 12 deletions(-)
-
-diff --git a/src/wayland/meta-wayland-outputs.c b/src/wayland/meta-wayland-outputs.c
-index 7695d86af..712a143a8 100644
---- a/src/wayland/meta-wayland-outputs.c
-+++ b/src/wayland/meta-wayland-outputs.c
-@@ -181,24 +181,36 @@ send_output_events (struct wl_resource *resource,
-   MetaLogicalMonitor *old_logical_monitor;
-   guint old_mode_flags;
-   gint old_scale;
-+  gint scale;
-+  MetaRectangle old_rect;
-+  MetaRectangle rect;
-   float old_refresh_rate;
-   float refresh_rate;
- 
-   old_logical_monitor = wayland_output->logical_monitor;
-   old_mode_flags = wayland_output->mode_flags;
-   old_scale = wayland_output->scale;
-+  old_rect = old_logical_monitor->rect;
-   old_refresh_rate = wayland_output->refresh_rate;
- 
-+  scale = calculate_wayland_output_scale (logical_monitor);
-+  rect = logical_monitor->rect;
-   monitor = pick_main_monitor (logical_monitor);
--
-   current_mode = meta_monitor_get_current_mode (monitor);
-   refresh_rate = meta_monitor_mode_get_refresh_rate (current_mode);
- 
-+  if (meta_is_stage_views_scaled ()) {
-+    old_rect.width *= old_scale;
-+    old_rect.height *= old_scale;
-+    rect.width *= scale;
-+    rect.height *= scale;
-+  }
-+
-   gboolean need_done = FALSE;
- 
-   if (need_all_events ||
--      old_logical_monitor->rect.x != logical_monitor->rect.x ||
--      old_logical_monitor->rect.y != logical_monitor->rect.y ||
-+      old_rect.x != rect.x ||
-+      old_rect.y != rect.y ||
-       is_different_rotation (old_logical_monitor, logical_monitor))
-     {
-       int width_mm, height_mm;
-@@ -229,40 +241,37 @@ send_output_events (struct wl_resource *resource,
-       transform = WL_OUTPUT_TRANSFORM_NORMAL;
- 
-       wl_output_send_geometry (resource,
--                               logical_monitor->rect.x,
--                               logical_monitor->rect.y,
-+                               rect.x,
-+                               rect.y,
-                                width_mm,
-                                height_mm,
-                                subpixel_order,
-                                vendor,
-                                product,
-                                transform);
-       need_done = TRUE;
-     }
- 
-   preferred_mode = meta_monitor_get_preferred_mode (monitor);
-   if (current_mode == preferred_mode)
-     mode_flags |= WL_OUTPUT_MODE_PREFERRED;
- 
-   if (need_all_events ||
--      old_logical_monitor->rect.width != logical_monitor->rect.width ||
--      old_logical_monitor->rect.height != logical_monitor->rect.height ||
-+      old_rect.width != rect.width ||
-+      old_rect.height != rect.height ||
-       old_refresh_rate != refresh_rate ||
-       old_mode_flags != mode_flags)
-     {
-       wl_output_send_mode (resource,
-                            mode_flags,
--                           logical_monitor->rect.width,
--                           logical_monitor->rect.height,
-+                           rect.width,
-+                           rect.height,
-                            (int32_t) (refresh_rate * 1000));
-       need_done = TRUE;
-     }
- 
-   if (version >= WL_OUTPUT_SCALE_SINCE_VERSION)
-     {
--      int scale;
--
--      scale = calculate_wayland_output_scale (logical_monitor);
-       if (need_all_events ||
-           old_scale != scale)
-         {
--- 
-2.21.0
-

Copied: mutter/repos/extra-x86_64/0001-wayland-output-Report-unscaled-size-even-in-logical-.patch (from rev 349704, mutter/trunk/0001-wayland-output-Report-unscaled-size-even-in-logical-.patch)
===================================================================
--- 0001-wayland-output-Report-unscaled-size-even-in-logical-.patch	                        (rev 0)
+++ 0001-wayland-output-Report-unscaled-size-even-in-logical-.patch	2019-04-02 19:13:39 UTC (rev 349705)
@@ -0,0 +1,147 @@
+From 761000ec8f4b53d0fa06f235be2ed30b80ec5bcb Mon Sep 17 00:00:00 2001
+Message-Id: <761000ec8f4b53d0fa06f235be2ed30b80ec5bcb.1553890447.git.jan.steffens at gmail.com>
+From: "Jan Alexander Steffens (heftig)" <jan.steffens at gmail.com>
+Date: Wed, 27 Mar 2019 00:38:02 +0100
+Subject: [PATCH] wayland/output: Report unscaled size even in logical layout
+ mode
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+In physical layout mode, the size and scale of the `wl_output` matches
+the actual monitor:
+
+| Monitor      | `wl_output`  | `GdkMonitor` |
+| ------------ | ------------ | ------------ |
+| 3840×2160 @1 | 3840×2160 @1 | 3840×2160 @1 |
+| 3840×2160 @2 | 3840×2160 @2 | 1920×1080 @2 |
+
+GTK currently does not support `xdg_output`. To estimate the logical
+output size for `GdkMonitor`, it divides the output's size by its scale
+factor. There might be other legacy clients making the same assumption.
+
+In logical layout mode, mutter currently reports logical geometry for
+the `wl_output`s, but this no longer matches the monitors:
+
+| Monitor        | `wl_output`  | `GdkMonitor` |
+| -------------- | ------------ | ------------ |
+| 3840×2160 @1   | 3840×2160 @1 | 3840×2160 @1 |
+| 3840×2160 @2   | 1920×1080 @2 |  960×540  @2 |
+| 3840×2160 @1.5 | 2560×1440 @2 | 1280×720  @2 |
+
+This patch changes logical layout mode to multiply the sizes by the
+`wl_output`'s scale factor before sending them to the client. Now the
+sizes match the physical layout mode again:
+
+| Monitor        | `wl_output`  | `GdkMonitor` |
+| -------------- | ------------ | ------------ |
+| 3840×2160 @1   | 3840×2160 @1 | 3840×2160 @1 |
+| 3840×2160 @2   | 3840×2160 @2 | 1920×1080 @2 |
+| 3840×2160 @1.5 | 5120×2880 @2 | 2560×1440 @2 |
+
+Unfortunately, non-integer output scales are not representable in
+`wl_output`. Still, I believe these values are better than before, and
+the best we can do for clients that do not know about `xdg_output`: The
+size of the output will match the size that a buffer for a fullscreen
+surface should have at the indicated scale.
+
+Fixes part of https://bugzilla.mozilla.org/show_bug.cgi?id=1534089
+https://gitlab.gnome.org/GNOME/mutter/merge_requests/510
+---
+ src/wayland/meta-wayland-outputs.c | 33 +++++++++++++++++++-----------
+ 1 file changed, 21 insertions(+), 12 deletions(-)
+
+diff --git a/src/wayland/meta-wayland-outputs.c b/src/wayland/meta-wayland-outputs.c
+index 7695d86af..712a143a8 100644
+--- a/src/wayland/meta-wayland-outputs.c
++++ b/src/wayland/meta-wayland-outputs.c
+@@ -181,24 +181,36 @@ send_output_events (struct wl_resource *resource,
+   MetaLogicalMonitor *old_logical_monitor;
+   guint old_mode_flags;
+   gint old_scale;
++  gint scale;
++  MetaRectangle old_rect;
++  MetaRectangle rect;
+   float old_refresh_rate;
+   float refresh_rate;
+ 
+   old_logical_monitor = wayland_output->logical_monitor;
+   old_mode_flags = wayland_output->mode_flags;
+   old_scale = wayland_output->scale;
++  old_rect = old_logical_monitor->rect;
+   old_refresh_rate = wayland_output->refresh_rate;
+ 
++  scale = calculate_wayland_output_scale (logical_monitor);
++  rect = logical_monitor->rect;
+   monitor = pick_main_monitor (logical_monitor);
+-
+   current_mode = meta_monitor_get_current_mode (monitor);
+   refresh_rate = meta_monitor_mode_get_refresh_rate (current_mode);
+ 
++  if (meta_is_stage_views_scaled ()) {
++    old_rect.width *= old_scale;
++    old_rect.height *= old_scale;
++    rect.width *= scale;
++    rect.height *= scale;
++  }
++
+   gboolean need_done = FALSE;
+ 
+   if (need_all_events ||
+-      old_logical_monitor->rect.x != logical_monitor->rect.x ||
+-      old_logical_monitor->rect.y != logical_monitor->rect.y ||
++      old_rect.x != rect.x ||
++      old_rect.y != rect.y ||
+       is_different_rotation (old_logical_monitor, logical_monitor))
+     {
+       int width_mm, height_mm;
+@@ -229,40 +241,37 @@ send_output_events (struct wl_resource *resource,
+       transform = WL_OUTPUT_TRANSFORM_NORMAL;
+ 
+       wl_output_send_geometry (resource,
+-                               logical_monitor->rect.x,
+-                               logical_monitor->rect.y,
++                               rect.x,
++                               rect.y,
+                                width_mm,
+                                height_mm,
+                                subpixel_order,
+                                vendor,
+                                product,
+                                transform);
+       need_done = TRUE;
+     }
+ 
+   preferred_mode = meta_monitor_get_preferred_mode (monitor);
+   if (current_mode == preferred_mode)
+     mode_flags |= WL_OUTPUT_MODE_PREFERRED;
+ 
+   if (need_all_events ||
+-      old_logical_monitor->rect.width != logical_monitor->rect.width ||
+-      old_logical_monitor->rect.height != logical_monitor->rect.height ||
++      old_rect.width != rect.width ||
++      old_rect.height != rect.height ||
+       old_refresh_rate != refresh_rate ||
+       old_mode_flags != mode_flags)
+     {
+       wl_output_send_mode (resource,
+                            mode_flags,
+-                           logical_monitor->rect.width,
+-                           logical_monitor->rect.height,
++                           rect.width,
++                           rect.height,
+                            (int32_t) (refresh_rate * 1000));
+       need_done = TRUE;
+     }
+ 
+   if (version >= WL_OUTPUT_SCALE_SINCE_VERSION)
+     {
+-      int scale;
+-
+-      scale = calculate_wayland_output_scale (logical_monitor);
+       if (need_all_events ||
+           old_scale != scale)
+         {
+-- 
+2.21.0
+

Deleted: 216.patch
===================================================================
--- 216.patch	2019-04-02 19:02:56 UTC (rev 349704)
+++ 216.patch	2019-04-02 19:13:39 UTC (rev 349705)
@@ -1,128 +0,0 @@
-From 6d8d73beeef3a618c553e89b0b3e532ec3654a30 Mon Sep 17 00:00:00 2001
-From: Daniel van Vugt <daniel.van.vugt at canonical.com>
-Date: Mon, 23 Jul 2018 16:28:56 +0800
-Subject: [PATCH] cogl-winsys-glx: Fix frame notification race/leak
-
-If a second `set_{sync,complete}_pending` was queued before the idle
-handler had flushed the first then one of them would be forgotten.
-It would stay queued forever and never emitted as a notification.
-
-This could happen repeatedly causing a slow leak. But worse still,
-`clutter-stage-cogl` would then have `pending_swaps` permanently stuck
-above zero preventing the presentation timing logic from being used.
-
-The problem is that a boolean can only count to one, but in some cases
-(triple buffering, whether intentional or accidental #334) we need it to
-count to two. So just change booleans to integers and count properly.
-
-https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
----
- cogl/cogl/winsys/cogl-winsys-glx.c | 58 +++++++++++++++---------------
- 1 file changed, 29 insertions(+), 29 deletions(-)
-
-diff --git a/cogl/cogl/winsys/cogl-winsys-glx.c b/cogl/cogl/winsys/cogl-winsys-glx.c
-index 2623d02c6..235cfe81f 100644
---- a/cogl/cogl/winsys/cogl-winsys-glx.c
-+++ b/cogl/cogl/winsys/cogl-winsys-glx.c
-@@ -99,9 +99,9 @@ typedef struct _CoglOnscreenGLX
-   CoglOnscreenXlib _parent;
-   GLXDrawable glxwin;
-   uint32_t last_swap_vsync_counter;
--  gboolean pending_sync_notify;
--  gboolean pending_complete_notify;
--  gboolean pending_resize_notify;
-+  uint32_t pending_sync_notify;
-+  uint32_t pending_complete_notify;
-+  uint32_t pending_resize_notify;
- 
-   GThread *swap_wait_thread;
-   GQueue *swap_wait_queue;
-@@ -347,35 +347,35 @@ flush_pending_notifications_cb (void *data,
-     {
-       CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer);
-       CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
--      gboolean pending_sync_notify = glx_onscreen->pending_sync_notify;
--      gboolean pending_complete_notify = glx_onscreen->pending_complete_notify;
- 
--      /* If swap_region is called then notifying the sync event could
--       * potentially immediately queue a subsequent pending notify so
--       * we need to clear the flag before invoking the callback */
--      glx_onscreen->pending_sync_notify = FALSE;
--      glx_onscreen->pending_complete_notify = FALSE;
--
--      if (pending_sync_notify)
-+      while (glx_onscreen->pending_sync_notify > 0 ||
-+             glx_onscreen->pending_complete_notify > 0 ||
-+             glx_onscreen->pending_resize_notify > 0)
-         {
--          CoglFrameInfo *info = g_queue_peek_head (&onscreen->pending_frame_infos);
--
--          _cogl_onscreen_notify_frame_sync (onscreen, info);
--        }
-+          if (glx_onscreen->pending_sync_notify > 0)
-+            {
-+              CoglFrameInfo *info =
-+                g_queue_peek_head (&onscreen->pending_frame_infos);
- 
--      if (pending_complete_notify)
--        {
--          CoglFrameInfo *info = g_queue_pop_head (&onscreen->pending_frame_infos);
-+              _cogl_onscreen_notify_frame_sync (onscreen, info);
-+              glx_onscreen->pending_sync_notify--;
-+            }
- 
--          _cogl_onscreen_notify_complete (onscreen, info);
-+          if (glx_onscreen->pending_complete_notify > 0)
-+            {
-+              CoglFrameInfo *info =
-+                g_queue_pop_head (&onscreen->pending_frame_infos);
- 
--          cogl_object_unref (info);
--        }
-+              _cogl_onscreen_notify_complete (onscreen, info);
-+              cogl_object_unref (info);
-+              glx_onscreen->pending_complete_notify--;
-+            }
- 
--      if (glx_onscreen->pending_resize_notify)
--        {
--          _cogl_onscreen_notify_resize (onscreen);
--          glx_onscreen->pending_resize_notify = FALSE;
-+          if (glx_onscreen->pending_resize_notify > 0)
-+            {
-+              _cogl_onscreen_notify_resize (onscreen);
-+              glx_onscreen->pending_resize_notify--;
-+            }
-         }
-     }
- }
-@@ -417,7 +417,7 @@ set_sync_pending (CoglOnscreen *onscreen)
-                                       NULL);
-     }
- 
--  glx_onscreen->pending_sync_notify = TRUE;
-+  glx_onscreen->pending_sync_notify++;
- }
- 
- static void
-@@ -440,7 +440,7 @@ set_complete_pending (CoglOnscreen *onscreen)
-                                       NULL);
-     }
- 
--  glx_onscreen->pending_complete_notify = TRUE;
-+  glx_onscreen->pending_complete_notify++;
- }
- 
- static void
-@@ -533,7 +533,7 @@ notify_resize (CoglContext *context,
-                                       NULL);
-     }
- 
--  glx_onscreen->pending_resize_notify = TRUE;
-+  glx_onscreen->pending_resize_notify++;
- 
-   if (!xlib_onscreen->is_foreign_xwin)
-     {
--- 
-2.18.1
-

Copied: mutter/repos/extra-x86_64/216.patch (from rev 349704, mutter/trunk/216.patch)
===================================================================
--- 216.patch	                        (rev 0)
+++ 216.patch	2019-04-02 19:13:39 UTC (rev 349705)
@@ -0,0 +1,128 @@
+From 6d8d73beeef3a618c553e89b0b3e532ec3654a30 Mon Sep 17 00:00:00 2001
+From: Daniel van Vugt <daniel.van.vugt at canonical.com>
+Date: Mon, 23 Jul 2018 16:28:56 +0800
+Subject: [PATCH] cogl-winsys-glx: Fix frame notification race/leak
+
+If a second `set_{sync,complete}_pending` was queued before the idle
+handler had flushed the first then one of them would be forgotten.
+It would stay queued forever and never emitted as a notification.
+
+This could happen repeatedly causing a slow leak. But worse still,
+`clutter-stage-cogl` would then have `pending_swaps` permanently stuck
+above zero preventing the presentation timing logic from being used.
+
+The problem is that a boolean can only count to one, but in some cases
+(triple buffering, whether intentional or accidental #334) we need it to
+count to two. So just change booleans to integers and count properly.
+
+https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
+---
+ cogl/cogl/winsys/cogl-winsys-glx.c | 58 +++++++++++++++---------------
+ 1 file changed, 29 insertions(+), 29 deletions(-)
+
+diff --git a/cogl/cogl/winsys/cogl-winsys-glx.c b/cogl/cogl/winsys/cogl-winsys-glx.c
+index 2623d02c6..235cfe81f 100644
+--- a/cogl/cogl/winsys/cogl-winsys-glx.c
++++ b/cogl/cogl/winsys/cogl-winsys-glx.c
+@@ -99,9 +99,9 @@ typedef struct _CoglOnscreenGLX
+   CoglOnscreenXlib _parent;
+   GLXDrawable glxwin;
+   uint32_t last_swap_vsync_counter;
+-  gboolean pending_sync_notify;
+-  gboolean pending_complete_notify;
+-  gboolean pending_resize_notify;
++  uint32_t pending_sync_notify;
++  uint32_t pending_complete_notify;
++  uint32_t pending_resize_notify;
+ 
+   GThread *swap_wait_thread;
+   GQueue *swap_wait_queue;
+@@ -347,35 +347,35 @@ flush_pending_notifications_cb (void *data,
+     {
+       CoglOnscreen *onscreen = COGL_ONSCREEN (framebuffer);
+       CoglOnscreenGLX *glx_onscreen = onscreen->winsys;
+-      gboolean pending_sync_notify = glx_onscreen->pending_sync_notify;
+-      gboolean pending_complete_notify = glx_onscreen->pending_complete_notify;
+ 
+-      /* If swap_region is called then notifying the sync event could
+-       * potentially immediately queue a subsequent pending notify so
+-       * we need to clear the flag before invoking the callback */
+-      glx_onscreen->pending_sync_notify = FALSE;
+-      glx_onscreen->pending_complete_notify = FALSE;
+-
+-      if (pending_sync_notify)
++      while (glx_onscreen->pending_sync_notify > 0 ||
++             glx_onscreen->pending_complete_notify > 0 ||
++             glx_onscreen->pending_resize_notify > 0)
+         {
+-          CoglFrameInfo *info = g_queue_peek_head (&onscreen->pending_frame_infos);
+-
+-          _cogl_onscreen_notify_frame_sync (onscreen, info);
+-        }
++          if (glx_onscreen->pending_sync_notify > 0)
++            {
++              CoglFrameInfo *info =
++                g_queue_peek_head (&onscreen->pending_frame_infos);
+ 
+-      if (pending_complete_notify)
+-        {
+-          CoglFrameInfo *info = g_queue_pop_head (&onscreen->pending_frame_infos);
++              _cogl_onscreen_notify_frame_sync (onscreen, info);
++              glx_onscreen->pending_sync_notify--;
++            }
+ 
+-          _cogl_onscreen_notify_complete (onscreen, info);
++          if (glx_onscreen->pending_complete_notify > 0)
++            {
++              CoglFrameInfo *info =
++                g_queue_pop_head (&onscreen->pending_frame_infos);
+ 
+-          cogl_object_unref (info);
+-        }
++              _cogl_onscreen_notify_complete (onscreen, info);
++              cogl_object_unref (info);
++              glx_onscreen->pending_complete_notify--;
++            }
+ 
+-      if (glx_onscreen->pending_resize_notify)
+-        {
+-          _cogl_onscreen_notify_resize (onscreen);
+-          glx_onscreen->pending_resize_notify = FALSE;
++          if (glx_onscreen->pending_resize_notify > 0)
++            {
++              _cogl_onscreen_notify_resize (onscreen);
++              glx_onscreen->pending_resize_notify--;
++            }
+         }
+     }
+ }
+@@ -417,7 +417,7 @@ set_sync_pending (CoglOnscreen *onscreen)
+                                       NULL);
+     }
+ 
+-  glx_onscreen->pending_sync_notify = TRUE;
++  glx_onscreen->pending_sync_notify++;
+ }
+ 
+ static void
+@@ -440,7 +440,7 @@ set_complete_pending (CoglOnscreen *onscreen)
+                                       NULL);
+     }
+ 
+-  glx_onscreen->pending_complete_notify = TRUE;
++  glx_onscreen->pending_complete_notify++;
+ }
+ 
+ static void
+@@ -533,7 +533,7 @@ notify_resize (CoglContext *context,
+                                       NULL);
+     }
+ 
+-  glx_onscreen->pending_resize_notify = TRUE;
++  glx_onscreen->pending_resize_notify++;
+ 
+   if (!xlib_onscreen->is_foreign_xwin)
+     {
+-- 
+2.18.1
+

Deleted: PKGBUILD
===================================================================
--- PKGBUILD	2019-04-02 19:02:56 UTC (rev 349704)
+++ PKGBUILD	2019-04-02 19:13:39 UTC (rev 349705)
@@ -1,59 +0,0 @@
-# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
-# Maintainer: Ionut Biru <ibiru at archlinux.org>
-# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
-
-pkgname=mutter
-pkgver=3.32.0+38+g9d49e8abd
-pkgrel=1
-pkgdesc="A window manager for GNOME"
-url="https://gitlab.gnome.org/GNOME/mutter"
-arch=(x86_64)
-license=(GPL)
-depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas libcanberra
-         startup-notification zenity libsm gnome-desktop upower libxkbcommon-x11
-         gnome-settings-daemon libgudev libinput pipewire xorg-server-xwayland)
-makedepends=(gobject-introspection git egl-wayland meson xorg-server)
-checkdepends=(xorg-server-xvfb)
-groups=(gnome)
-_commit=9d49e8abd077941b126685dde3b64753cc4fc916  # master
-source=("git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
-        0001-wayland-output-Report-unscaled-size-even-in-logical-.patch
-        216.patch)
-sha256sums=('SKIP'
-            '842162bf8cec5d69fdb80c85fd152ddd3db6a9179d11d6f81d486f79814838c0'
-            'ed4f3cf738a3cffdf8a6e1a352bf24d74078c3b26fb9262c5746e0d95b9df756')
-
-pkgver() {
-  cd $pkgname
-  git describe --tags | sed 's/-/+/g'
-}
-
-prepare() {
-  cd $pkgname
-
-  # https://bugzilla.mozilla.org/show_bug.cgi?id=1534089
-  patch -Np1 -i ../0001-wayland-output-Report-unscaled-size-even-in-logical-.patch
-
-  # https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
-  git apply -3 ../216.patch
-}
-
-build() {
-  arch-meson $pkgname build \
-    -D egl_device=true \
-    -D wayland_eglstream=true \
-    -D installed_tests=false
-  ninja -C build
-}
-
-check() (
-  mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
-  glib-compile-schemas "${GSETTINGS_SCHEMA_DIR:=$PWD/build/data}"
-  export XDG_RUNTIME_DIR GSETTINGS_SCHEMA_DIR
-
-  dbus-run-session xvfb-run -s '+iglx -noreset' meson test -C build
-)
-
-package() {
-  DESTDIR="$pkgdir" meson install -C build
-}

Copied: mutter/repos/extra-x86_64/PKGBUILD (from rev 349704, mutter/trunk/PKGBUILD)
===================================================================
--- PKGBUILD	                        (rev 0)
+++ PKGBUILD	2019-04-02 19:13:39 UTC (rev 349705)
@@ -0,0 +1,59 @@
+# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens at gmail.com>
+# Maintainer: Ionut Biru <ibiru at archlinux.org>
+# Contributor: Michael Kanis <mkanis_at_gmx_dot_de>
+
+pkgname=mutter
+pkgver=3.32.0+49+gb2d0184c6
+pkgrel=1
+pkgdesc="A window manager for GNOME"
+url="https://gitlab.gnome.org/GNOME/mutter"
+arch=(x86_64)
+license=(GPL)
+depends=(dconf gobject-introspection-runtime gsettings-desktop-schemas libcanberra
+         startup-notification zenity libsm gnome-desktop upower libxkbcommon-x11
+         gnome-settings-daemon libgudev libinput pipewire xorg-server-xwayland)
+makedepends=(gobject-introspection git egl-wayland meson xorg-server)
+checkdepends=(xorg-server-xvfb)
+groups=(gnome)
+_commit=b2d0184c6efa164ad5dd7a2ca8b10cf13acf5b4c  # master
+source=("git+https://gitlab.gnome.org/GNOME/mutter.git#commit=$_commit"
+        0001-wayland-output-Report-unscaled-size-even-in-logical-.patch
+        216.patch)
+sha256sums=('SKIP'
+            '842162bf8cec5d69fdb80c85fd152ddd3db6a9179d11d6f81d486f79814838c0'
+            'ed4f3cf738a3cffdf8a6e1a352bf24d74078c3b26fb9262c5746e0d95b9df756')
+
+pkgver() {
+  cd $pkgname
+  git describe --tags | sed 's/-/+/g'
+}
+
+prepare() {
+  cd $pkgname
+
+  # https://bugzilla.mozilla.org/show_bug.cgi?id=1534089
+  patch -Np1 -i ../0001-wayland-output-Report-unscaled-size-even-in-logical-.patch
+
+  # https://gitlab.gnome.org/GNOME/mutter/merge_requests/216
+  git apply -3 ../216.patch
+}
+
+build() {
+  arch-meson $pkgname build \
+    -D egl_device=true \
+    -D wayland_eglstream=true \
+    -D installed_tests=false
+  ninja -C build
+}
+
+check() (
+  mkdir -p -m 700 "${XDG_RUNTIME_DIR:=$PWD/runtime-dir}"
+  glib-compile-schemas "${GSETTINGS_SCHEMA_DIR:=$PWD/build/data}"
+  export XDG_RUNTIME_DIR GSETTINGS_SCHEMA_DIR
+
+  dbus-run-session xvfb-run -s '+iglx -noreset' meson test -C build
+)
+
+package() {
+  DESTDIR="$pkgdir" meson install -C build
+}



More information about the arch-commits mailing list