systemd/mutter: upgrade to 50.4

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9413>
This commit is contained in:
Achill Gilgenast
2026-08-21 08:49:15 +00:00
parent 7c699fefcf
commit 9c6fe1246e
2 changed files with 3 additions and 130 deletions
+3 -5
View File
@@ -3,9 +3,9 @@
# Co-Maintainer: Achill Gilgenast <achill@achill.org>
maintainer="Stefan Hansson <newbyte@postmarketos.org>"
pkgname=mutter
_pkgver=50.2
_pkgver=50.4
pkgver=9999$_pkgver
pkgrel=2
pkgrel=0
pkgdesc="clutter-based window manager and compositor"
url="https://gitlab.gnome.org/GNOME/mutter"
# armhf: pmb#2618
@@ -78,7 +78,6 @@ subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-lang $pkgname-schem
source="https://download.gnome.org/sources/mutter/${_pkgver%%.*}/mutter-$_pkgver.tar.xz
fixudev-req.patch
pcversion.patch
fix-log-spam.patch
"
builddir="$srcdir/$pkgname-$_pkgver"
@@ -110,8 +109,7 @@ package() {
}
sha512sums="
813dff95e762cce19ad8e3ad9d564b4373a89e8a10bf37566b0aefa40a61caf1dda169ba8604e56b037d4daf3a8ca961fd7559348d8b85add1f98c62aee47ea2 mutter-50.2.tar.xz
88c9e5c2e87ca837819f980ededd2834c130dd0a2f31e46dd1561d04138dcafdd63ba72b409e609f7eba80a56b863edbef5647755934ca9deb87670f4a736430 mutter-50.4.tar.xz
60eb075a88ca301470130d17371c1410220be0c7d5a929f6b528ec838a1133ebccf46d29f448060043e94c2edf4615ae431927911bede1972ac37f04ff9f29b4 fixudev-req.patch
52ae70a818ab1bbeeeb1259405c964baf48cd793385fae9200b57b7160cb8094041b2c2336fc57349e562aa142d631c5668a2d0a4dc32f6a6854c0ea2bb0d2c0 pcversion.patch
7c820799a57f02ef02da424a5474c97904a815690b2ccc9f15650e391b1a3f1809db0c806a6f63e9d9e8702f98d70f59ee66451aac65e704b4cc5725954f2195 fix-log-spam.patch
"
@@ -1,125 +0,0 @@
Patch-Source: https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5096.patch
From f1570318ec3e9a38615eb91708bb71628ab8bcfd Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Sun, 31 May 2026 11:23:06 +0200
Subject: [PATCH 1/2] wayland: Only schedule a single cursor location update
If the cursor is updated multiple times before the state is applied
on the surface, the newer signal handled would overwrite the ID of
the previous.
We can coalesce these calls and keep just the last value with the
already existing signal handler, add a check to make sure we don't
add a second signal handler if there's one pending already.
Fixes (harmless) warnings like:
clutter_input_focus_set_cursor_location: assertion 'CLUTTER_IS_INPUT_FOCUS (focus)' failed
When a second handler would stumble upon already cleared data.
Easily reproducible when a VTE widget has the IM focus, but there
may be other cases.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/work_items/4840
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5096>
---
src/wayland/meta-wayland-text-input.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/wayland/meta-wayland-text-input.c b/src/wayland/meta-wayland-text-input.c
index ab635fda71d..a8fe13fa893 100644
--- a/src/wayland/meta-wayland-text-input.c
+++ b/src/wayland/meta-wayland-text-input.c
@@ -831,8 +831,11 @@ update_cursor_location (MetaWaylandSurface *surface,
{
MetaWaylandTextInput *text_input = user_data;
- clutter_input_focus_set_cursor_location (text_input->cursor_update.focus,
- &text_input->cursor_update.rect);
+ if (clutter_input_focus_is_focused (text_input->cursor_update.focus))
+ {
+ clutter_input_focus_set_cursor_location (text_input->cursor_update.focus,
+ &text_input->cursor_update.rect);
+ }
g_clear_object (&text_input->cursor_update.focus);
graphene_rect_init (&text_input->cursor_update.rect, 0, 0, 0, 0);
@@ -936,10 +939,13 @@ text_input_commit_state (struct wl_client *client,
graphene_rect_init (&text_input->cursor_update.rect,
x1, y1, x2 - x1, y2 - y1);
- text_input->cursor_update.signal_id =
- g_signal_connect (text_input->surface, "pre-state-applied",
- G_CALLBACK (update_cursor_location),
- text_input);
+ if (text_input->cursor_update.signal_id == 0)
+ {
+ text_input->cursor_update.signal_id =
+ g_signal_connect (text_input->surface, "pre-state-applied",
+ G_CALLBACK (update_cursor_location),
+ text_input);
+ }
}
if (text_input->pending_state & META_WAYLAND_PENDING_STATE_ACTIONS)
--
GitLab
From 61d5d89ac3e86081c49455b74805b01ecaeae714 Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Mon, 1 Jun 2026 10:52:07 +0200
Subject: [PATCH 2/2] wayland: Drop semi-temporary variable
When scheduling IM cursor rect updates, the ClutterInputFocus
is kept around for the purpose of it being updated along with
wl_surface updates. There's only one ClutterInputFocus though,
from the MetaWaylandTextInput perspective, this intermediate
variable can be dropped.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/5096>
---
src/wayland/meta-wayland-text-input.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/src/wayland/meta-wayland-text-input.c b/src/wayland/meta-wayland-text-input.c
index a8fe13fa893..3f57354005b 100644
--- a/src/wayland/meta-wayland-text-input.c
+++ b/src/wayland/meta-wayland-text-input.c
@@ -623,8 +623,6 @@ text_input_destructor (struct wl_resource *resource)
g_clear_pointer (&text_input->preedit_style.hints, g_array_unref);
wl_list_remove (wl_resource_get_link (resource));
reset_text_input_focus (text_input);
-
- g_clear_object (&text_input->cursor_update.focus);
}
static void
@@ -831,13 +829,12 @@ update_cursor_location (MetaWaylandSurface *surface,
{
MetaWaylandTextInput *text_input = user_data;
- if (clutter_input_focus_is_focused (text_input->cursor_update.focus))
+ if (clutter_input_focus_is_focused (text_input->input_focus))
{
- clutter_input_focus_set_cursor_location (text_input->cursor_update.focus,
+ clutter_input_focus_set_cursor_location (text_input->input_focus,
&text_input->cursor_update.rect);
}
- g_clear_object (&text_input->cursor_update.focus);
graphene_rect_init (&text_input->cursor_update.rect, 0, 0, 0, 0);
g_clear_signal_handler (&text_input->cursor_update.signal_id, surface);
}
@@ -935,7 +932,6 @@ text_input_commit_state (struct wl_client *client,
rect.y + rect.height,
&x2, &y2);
- g_set_object (&text_input->cursor_update.focus, focus);
graphene_rect_init (&text_input->cursor_update.rect,
x1, y1, x2 - x1, y2 - y1);
--
GitLab