Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package mutter for openSUSE:Factory checked 
in at 2025-03-21 20:21:45
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/mutter (Old)
 and      /work/SRC/openSUSE:Factory/.mutter.new.2696 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "mutter"

Fri Mar 21 20:21:45 2025 rev:247 rq:1254940 version:48.0+5

Changes:
--------
--- /work/SRC/openSUSE:Factory/mutter/mutter.changes    2025-03-18 
17:41:07.793109984 +0100
+++ /work/SRC/openSUSE:Factory/.mutter.new.2696/mutter.changes  2025-03-21 
20:22:05.625939959 +0100
@@ -1,0 +2,19 @@
+Fri Mar 21 08:05:33 UTC 2025 - Dead Mozay <dead_mo...@opensuse.org>
+
+- Add 0001-cursor-Unify-prepare_func-for-shape-cursors.patch.
+  Solves the problem of changing the size of the cursor in gtk 
+  applications on HiDPI displays. 
+
+-------------------------------------------------------------------
+Thu Mar 20 15:43:17 UTC 2025 - bjorn....@gmail.com
+
+- Update to version 48.0+5:
+  * Revert "ci: Disable container building temporarily"
+  * Revert "ci: Disable sysext temporarily"
+  * tests: Raise the timeout on monitor-unit from 1 minute to 5
+    minutes
+  * Revert "onscreen/native: Account for all posted frames"
+  * kms/impl-device: Always catch pending KMS update in
+    _schedule_process
+
+-------------------------------------------------------------------

Old:
----
  mutter-48.0.obscpio

New:
----
  0001-cursor-Unify-prepare_func-for-shape-cursors.patch
  _servicedata
  mutter-48.0+5.obscpio

BETA DEBUG BEGIN:
  New:
- Add 0001-cursor-Unify-prepare_func-for-shape-cursors.patch.
  Solves the problem of changing the size of the cursor in gtk 
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ mutter.spec ++++++
--- /var/tmp/diff_new_pack.ODFlns/_old  2025-03-21 20:22:06.533977736 +0100
+++ /var/tmp/diff_new_pack.ODFlns/_new  2025-03-21 20:22:06.533977736 +0100
@@ -23,7 +23,7 @@
 %define libmutter libmutter-%{api_major}-%{api_minor}
 
 Name:           mutter
-Version:        48.0
+Version:        48.0+5
 Release:        0
 Summary:        Window and compositing manager based on Clutter
 License:        GPL-2.0-or-later
@@ -40,6 +40,8 @@
 Patch4:         0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch
 #PATCH-FEATURE-OPENSUSE mutter-implement-text-input-v1.patch 
glgo#GNOME/mutter!3751 bsc#1219505 alynx.z...@suse.com -- Allow input method to 
work in Wayland Chromium
 Patch5:         mutter-implement-text-input-v1.patch
+# PATCH-FIX-UPSTREAM 0001-cursor-Unify-prepare_func-for-shape-cursors.patch 
https://gitlab.gnome.org/GNOME/mutter/-/issues/3975 -- Solves the problem of 
changing the size of the cursor in gtk applications on HiDPI displays.
+Patch6:         0001-cursor-Unify-prepare_func-for-shape-cursors.patch
 
 ## SLE-only patches start at 1000
 # PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 
idon...@suse.com -- make audible bell work out of the box.

++++++ 0001-cursor-Unify-prepare_func-for-shape-cursors.patch ++++++
>From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: "Jan Alexander Steffens (heftig)" <hef...@archlinux.org>
Date: Tue, 18 Mar 2025 22:58:37 +0100
Subject: [PATCH] cursor: Unify prepare_func for shape cursors

Move the root cursor prepare function into MetaCursorSpriteXcursor to
become its default prepare function. This should solve two issues:

- The root cursor prepare function was changed in f77d8e2a12a07ef6abe9
  to solve an issue with fractional scales. The tool cursor prepare
  function was missing this fix.
- The cursors created via the shape protocol had no prepare function at
  all, so were not getting scaled.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3975
---
 src/backends/meta-cursor-sprite-xcursor.c | 57 ++++++++++++++++++++
 src/core/display.c                        | 63 ++---------------------
 src/wayland/meta-wayland-tablet-tool.c    | 39 --------------
 3 files changed, 60 insertions(+), 99 deletions(-)

diff --git a/src/backends/meta-cursor-sprite-xcursor.c 
b/src/backends/meta-cursor-sprite-xcursor.c
index a4b9cbb988ab..dc2580f65db9 100644
--- a/src/backends/meta-cursor-sprite-xcursor.c
+++ b/src/backends/meta-cursor-sprite-xcursor.c
@@ -24,6 +24,7 @@
 #include "backends/meta-cursor.h"
 #include "backends/meta-cursor-renderer.h"
 #include "backends/meta-cursor-tracker-private.h"
+#include "backends/meta-logical-monitor.h"
 #include "clutter/clutter.h"
 #include "cogl/cogl.h"
 #include "meta/prefs.h"
@@ -510,22 +511,78 @@ meta_cursor_sprite_xcursor_new (MetaCursor         cursor,
   return sprite_xcursor;
 }
 
+static void
+xcursor_prepare_at (MetaCursorSpriteXcursor *sprite_xcursor,
+                    float                    best_scale,
+                    int                      x,
+                    int                      y,
+                    void                    *user_data)
+{
+  MetaCursorSprite *cursor_sprite = META_CURSOR_SPRITE (sprite_xcursor);
+  MetaCursorTracker *cursor_tracker =
+    meta_cursor_sprite_get_cursor_tracker (cursor_sprite);
+  MetaBackend *backend =
+    meta_cursor_tracker_get_backend (cursor_tracker);
+
+  if (meta_backend_is_stage_views_scaled (backend))
+    {
+      if (best_scale != 0.0f)
+        {
+          float ceiled_scale;
+          int cursor_width, cursor_height;
+
+          ceiled_scale = ceilf (best_scale);
+          meta_cursor_sprite_xcursor_set_theme_scale (sprite_xcursor,
+                                                      (int) ceiled_scale);
+
+          meta_cursor_sprite_realize_texture (cursor_sprite);
+          meta_cursor_sprite_xcursor_get_scaled_image_size (sprite_xcursor,
+                                                            &cursor_width,
+                                                            &cursor_height);
+          meta_cursor_sprite_set_viewport_dst_size (cursor_sprite,
+                                                    cursor_width,
+                                                    cursor_height);
+        }
+    }
+  else
+    {
+      MetaMonitorManager *monitor_manager =
+        meta_backend_get_monitor_manager (backend);
+      MetaLogicalMonitor *logical_monitor;
+
+      logical_monitor =
+        meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y);
+
+      /* Reload the cursor texture if the scale has changed. */
+      if (logical_monitor)
+        {
+          meta_cursor_sprite_xcursor_set_theme_scale (sprite_xcursor,
+                                                      (int) 
logical_monitor->scale);
+          meta_cursor_sprite_set_texture_scale (cursor_sprite, 1.0f);
+        }
+    }
+}
+
 static void
 meta_cursor_sprite_xcursor_finalize (GObject *object)
 {
   MetaCursorSpriteXcursor *sprite_xcursor = META_CURSOR_SPRITE_XCURSOR 
(object);
 
   g_clear_pointer (&sprite_xcursor->xcursor_images,
                    xcursor_images_destroy);
 
   G_OBJECT_CLASS (meta_cursor_sprite_xcursor_parent_class)->finalize (object);
 }
 
 static void
 meta_cursor_sprite_xcursor_init (MetaCursorSpriteXcursor *sprite_xcursor)
 {
   sprite_xcursor->theme_scale = 1;
   sprite_xcursor->theme_dirty = TRUE;
+
+  meta_cursor_sprite_set_prepare_func (META_CURSOR_SPRITE (sprite_xcursor),
+                                       (MetaCursorPrepareFunc) 
xcursor_prepare_at,
+                                       NULL);
 }
 
 static void
diff --git a/src/core/display.c b/src/core/display.c
index ae66a0cfcb8e..2bdf5be44c2c 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -1681,76 +1681,19 @@ meta_display_notify_window_created (MetaDisplay  
*display,
   g_signal_emit (display, display_signals[WINDOW_CREATED], 0, window);
 }
 
-static void
-root_cursor_prepare_at (MetaCursorSpriteXcursor *sprite_xcursor,
-                        float                    best_scale,
-                        int                      x,
-                        int                      y,
-                        MetaDisplay             *display)
-{
-  MetaCursorSprite *cursor_sprite = META_CURSOR_SPRITE (sprite_xcursor);
-  MetaBackend *backend = backend_from_display (display);
-
-  if (meta_backend_is_stage_views_scaled (backend))
-    {
-      if (best_scale != 0.0f)
-        {
-          float ceiled_scale;
-          int cursor_width, cursor_height;
-
-          ceiled_scale = ceilf (best_scale);
-          meta_cursor_sprite_xcursor_set_theme_scale (sprite_xcursor,
-                                                      (int) ceiled_scale);
-
-          meta_cursor_sprite_realize_texture (cursor_sprite);
-          meta_cursor_sprite_xcursor_get_scaled_image_size (sprite_xcursor,
-                                                            &cursor_width,
-                                                            &cursor_height);
-          meta_cursor_sprite_set_viewport_dst_size (cursor_sprite,
-                                                    cursor_width,
-                                                    cursor_height);
-        }
-    }
-  else
-    {
-      MetaMonitorManager *monitor_manager =
-        meta_backend_get_monitor_manager (backend);
-      MetaLogicalMonitor *logical_monitor;
-
-      logical_monitor =
-        meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y);
-
-      /* Reload the cursor texture if the scale has changed. */
-      if (logical_monitor)
-        {
-          meta_cursor_sprite_xcursor_set_theme_scale (sprite_xcursor,
-                                                      (int) 
logical_monitor->scale);
-          meta_cursor_sprite_set_texture_scale (cursor_sprite, 1.0f);
-        }
-    }
-}
-
-static void
-manage_root_cursor_sprite_scale (MetaDisplay             *display,
-                                 MetaCursorSpriteXcursor *sprite_xcursor)
-{
-  meta_cursor_sprite_set_prepare_func (META_CURSOR_SPRITE (sprite_xcursor),
-                                       (MetaCursorPrepareFunc) 
root_cursor_prepare_at,
-                                       display);
-}
-
 void
 meta_display_reload_cursor (MetaDisplay *display)
 {
   MetaCursor cursor = display->current_cursor;
   MetaCursorSpriteXcursor *sprite_xcursor;
   MetaBackend *backend = backend_from_display (display);
   MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker 
(backend);
 
   sprite_xcursor = meta_cursor_sprite_xcursor_new (cursor, cursor_tracker);
 
-  if (meta_is_wayland_compositor ())
-    manage_root_cursor_sprite_scale (display, sprite_xcursor);
+  if (!meta_is_wayland_compositor ())
+    meta_cursor_sprite_set_prepare_func (META_CURSOR_SPRITE (sprite_xcursor),
+                                         NULL, NULL);
 
   meta_cursor_tracker_set_root_cursor (cursor_tracker,
                                        META_CURSOR_SPRITE (sprite_xcursor));
diff --git a/src/wayland/meta-wayland-tablet-tool.c 
b/src/wayland/meta-wayland-tablet-tool.c
index 86523918ba34..8306babf0cf3 100644
--- a/src/wayland/meta-wayland-tablet-tool.c
+++ b/src/wayland/meta-wayland-tablet-tool.c
@@ -32,7 +32,6 @@
 #include "wayland/meta-wayland-tablet.h"
 #include "wayland/meta-wayland-tablet-seat.h"
 #include "backends/meta-input-settings-private.h"
-#include "backends/meta-logical-monitor.h"
 
 #include "tablet-unstable-v2-server-protocol.h"
 
@@ -425,87 +424,49 @@ tablet_tool_handle_cursor_surface_destroy (struct 
wl_listener *listener,
   meta_wayland_tablet_tool_set_cursor_surface (tool, NULL);
 }
 
-static void
-tool_cursor_prepare_at (MetaCursorSpriteXcursor *sprite_xcursor,
-                        float                    best_scale,
-                        int                      x,
-                        int                      y,
-                        MetaWaylandTabletTool   *tool)
-{
-  MetaBackend *backend = backend_from_tool (tool);
-  MetaMonitorManager *monitor_manager =
-    meta_backend_get_monitor_manager (backend);
-  MetaLogicalMonitor *logical_monitor;
-
-  logical_monitor =
-    meta_monitor_manager_get_logical_monitor_at (monitor_manager, x, y);
-
-  /* Reload the cursor texture if the scale has changed. */
-  if (logical_monitor)
-    {
-      MetaCursorSprite *cursor_sprite = META_CURSOR_SPRITE (sprite_xcursor);
-      float ceiled_scale;
-
-      ceiled_scale = ceilf (logical_monitor->scale);
-      meta_cursor_sprite_xcursor_set_theme_scale (sprite_xcursor,
-                                                  (int) ceiled_scale);
-
-      if (meta_backend_is_stage_views_scaled (backend))
-        meta_cursor_sprite_set_texture_scale (cursor_sprite,
-                                              1.0f / ceiled_scale);
-      else
-        meta_cursor_sprite_set_texture_scale (cursor_sprite, 1.0f);
-    }
-}
-
 MetaWaylandTabletTool *
 meta_wayland_tablet_tool_new (MetaWaylandTabletSeat  *seat,
                               ClutterInputDeviceTool *device_tool)
 {
   MetaWaylandCompositor *compositor =
     meta_wayland_seat_get_compositor (seat->seat);
   MetaContext *context = meta_wayland_compositor_get_context (compositor);
   MetaBackend *backend = meta_context_get_backend (context);
   MetaCursorTracker *cursor_tracker = meta_backend_get_cursor_tracker 
(backend);
   MetaWaylandTabletTool *tool;
 
   tool = g_new0 (MetaWaylandTabletTool, 1);
   tool->seat = seat;
   tool->device_tool = device_tool;
   wl_list_init (&tool->resource_list);
   wl_list_init (&tool->focus_resource_list);
 
   tool->focus_surface_destroy_listener.notify = 
tablet_tool_handle_focus_surface_destroy;
   tool->cursor_surface_destroy_listener.notify = 
tablet_tool_handle_cursor_surface_destroy;
 
   tool->default_sprite = meta_cursor_sprite_xcursor_new (META_CURSOR_DEFAULT,
                                                          cursor_tracker);
-  meta_cursor_sprite_set_prepare_func (META_CURSOR_SPRITE 
(tool->default_sprite),
-                                       (MetaCursorPrepareFunc) 
tool_cursor_prepare_at,
-                                       tool);
 
   return tool;
 }
 
 void
 meta_wayland_tablet_tool_free (MetaWaylandTabletTool *tool)
 {
   struct wl_resource *resource, *next;
 
   meta_wayland_tablet_tool_set_current_surface (tool, NULL);
   meta_wayland_tablet_tool_set_focus (tool, NULL, NULL);
   meta_wayland_tablet_tool_set_cursor_surface (tool, NULL);
   g_clear_object (&tool->cursor_renderer);
 
   wl_resource_for_each_safe (resource, next, &tool->resource_list)
     {
       zwp_tablet_tool_v2_send_removed (resource);
       wl_list_remove (wl_resource_get_link (resource));
       wl_list_init (wl_resource_get_link (resource));
     }
 
-  meta_cursor_sprite_set_prepare_func (META_CURSOR_SPRITE 
(tool->default_sprite),
-                                       NULL, NULL);
   g_object_unref (tool->default_sprite);
 
   g_free (tool);

++++++ _service ++++++
--- /var/tmp/diff_new_pack.ODFlns/_old  2025-03-21 20:22:06.577979566 +0100
+++ /var/tmp/diff_new_pack.ODFlns/_new  2025-03-21 20:22:06.581979733 +0100
@@ -3,11 +3,11 @@
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>
     <param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
-    <param name="revision">48.0</param>
+    <param name="revision">9a1fa7e13b5feefb76902287ae7ca2554d18cf15</param>
     <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
     <param name="versionrewrite-pattern">(.*)\+0</param>
     <param name="versionrewrite-replacement">\1</param>
-    <param name="changesgenerate">disable</param>
+    <param name="changesgenerate">enable</param>
   </service>
   <service name="obs_scm" mode="manual">
     <param name="scm">git</param>

++++++ _servicedata ++++++
<servicedata>
<service name="tar_scm">
                <param 
name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
              <param 
name="changesrevision">9a1fa7e13b5feefb76902287ae7ca2554d18cf15</param></service></servicedata>
(No newline at EOF)

++++++ mutter-48.0.obscpio -> mutter-48.0+5.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-48.0/.gitlab-ci.yml 
new/mutter-48.0+5/.gitlab-ci.yml
--- old/mutter-48.0/.gitlab-ci.yml      2025-03-16 14:38:48.000000000 +0100
+++ new/mutter-48.0+5/.gitlab-ci.yml    2025-03-19 14:01:12.000000000 +0100
@@ -21,7 +21,6 @@
   # https://gitlab.gnome.org/Infrastructure/Infrastructure/-/issues/1665
   tags:
     - x86_64_v3
-  when: manual
 
 stages:
  - review
@@ -327,14 +326,9 @@
   rules:
     - !reference [.only-merge-requests, rules]
 
-.dummy-container-build:
-  script:
-    - echo Dummy container build
-
 build-fedora-container@x86_64:
   extends:
-    #- .fdo.container-build@fedora@x86_64
-    - .dummy-container-build
+    - .fdo.container-build@fedora@x86_64
     - .mutter.fedora@x86_64
     - .mutter.skip-git-clone
   stage: prepare
@@ -343,8 +337,7 @@
 
 build-fedora-container@aarch64:
   extends:
-    #- .fdo.container-build@fedora@aarch64
-    - .dummy-container-build
+    - .fdo.container-build@fedora@aarch64
     - .mutter.fedora@aarch64
     - .mutter.skip-git-clone
   stage: prepare
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-48.0/src/backends/native/meta-kms-impl-device.c 
new/mutter-48.0+5/src/backends/native/meta-kms-impl-device.c
--- old/mutter-48.0/src/backends/native/meta-kms-impl-device.c  2025-03-16 
14:38:48.000000000 +0100
+++ new/mutter-48.0+5/src/backends/native/meta-kms-impl-device.c        
2025-03-19 14:01:12.000000000 +0100
@@ -2081,17 +2081,8 @@
 
       if (ensure_deadline_timer_armed (impl_device, crtc_frame))
         return;
-
-      if (crtc_frame->pending_update)
-        {
-          meta_kms_impl_device_do_process_update (impl_device, crtc_frame,
-                                                  crtc_frame->crtc,
-                                                  crtc_frame->pending_update,
-                                                  META_KMS_UPDATE_FLAG_NONE);
-        }
     }
-
-  if (crtc_frame->pending_update)
+  else if (crtc_frame->pending_update)
     {
       MetaKmsImplDevicePrivate *priv =
         meta_kms_impl_device_get_instance_private (impl_device);
@@ -2100,6 +2091,14 @@
                       crtc_frame->pending_update, priv->deadline_timer_state);
     }
 
+  if (crtc_frame->pending_update)
+    {
+      meta_kms_impl_device_do_process_update (impl_device, crtc_frame,
+                                              crtc_frame->crtc,
+                                              crtc_frame->pending_update,
+                                              META_KMS_UPDATE_FLAG_NONE);
+    }
+
   meta_kms_device_set_needs_flush (meta_kms_crtc_get_device (crtc), crtc);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/mutter-48.0/src/backends/native/meta-onscreen-native.c 
new/mutter-48.0+5/src/backends/native/meta-onscreen-native.c
--- old/mutter-48.0/src/backends/native/meta-onscreen-native.c  2025-03-16 
14:38:48.000000000 +0100
+++ new/mutter-48.0+5/src/backends/native/meta-onscreen-native.c        
2025-03-19 14:01:12.000000000 +0100
@@ -1672,7 +1672,6 @@
     {
       kms_update = meta_frame_native_steal_kms_update (frame_native);
       post_nonprimary_plane_update (onscreen_native, frame, kms_update);
-      onscreen_native->posted_frame = clutter_frame_ref (frame);
       return;
     }
 
@@ -2127,7 +2126,6 @@
     }
 
   post_nonprimary_plane_update (onscreen_native, frame, kms_update);
-  onscreen_native->posted_frame = clutter_frame_ref (frame);
 
   clutter_frame_set_result (frame, CLUTTER_FRAME_RESULT_PENDING_PRESENTED);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/mutter-48.0/src/tests/meson.build 
new/mutter-48.0+5/src/tests/meson.build
--- old/mutter-48.0/src/tests/meson.build       2025-03-16 14:38:48.000000000 
+0100
+++ new/mutter-48.0+5/src/tests/meson.build     2025-03-19 14:01:12.000000000 
+0100
@@ -265,6 +265,7 @@
   {
     'name': 'monitor-unit',
     'suite': 'backend',
+    'timeout': 300,
     'sources': [ 'monitor-unit-tests.c', ],
     'depends': [
       test_client,
@@ -879,7 +880,7 @@
     env: test_env,
     depends: test_depends,
     is_parallel: false,
-    timeout: 60,
+    timeout: test_case.get('timeout', 60),
   )
 endforeach
 

++++++ mutter.obsinfo ++++++
--- /var/tmp/diff_new_pack.ODFlns/_old  2025-03-21 20:22:08.118043637 +0100
+++ /var/tmp/diff_new_pack.ODFlns/_new  2025-03-21 20:22:08.122043803 +0100
@@ -1,5 +1,5 @@
 name: mutter
-version: 48.0
-mtime: 1742132328
-commit: 3af3738795f6e3a37b77c3e0b64b1e671709a3aa
+version: 48.0+5
+mtime: 1742389272
+commit: 9a1fa7e13b5feefb76902287ae7ca2554d18cf15
 

Reply via email to