diff --git a/0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch b/0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch index 9d3846f..ffcc104 100644 --- a/0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch +++ b/0001-Revert-clutter-actor-Cache-stage-relative-instead-of.patch @@ -9,11 +9,11 @@ This reverts commit 703bbe0e99dbb688352e0bff396e5cbf2c6af45b. clutter/clutter/clutter-actor.c | 67 ++++++++++----------------------- 1 file changed, 20 insertions(+), 47 deletions(-) -diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c -index dd0d5ceb6..70dea5ca2 100644 ---- a/clutter/clutter/clutter-actor.c -+++ b/clutter/clutter/clutter-actor.c -@@ -612,7 +612,7 @@ struct _ClutterActorPrivate +Index: mutter-46.3/clutter/clutter/clutter-actor.c +=================================================================== +--- mutter-46.3.orig/clutter/clutter/clutter-actor.c ++++ mutter-46.3/clutter/clutter/clutter-actor.c +@@ -566,7 +566,7 @@ struct _ClutterActorPrivate /* the cached transformation matrix; see apply_transform() */ graphene_matrix_t transform; @@ -22,7 +22,7 @@ index dd0d5ceb6..70dea5ca2 100644 float resource_scale; -@@ -776,7 +776,7 @@ struct _ClutterActorPrivate +@@ -730,7 +730,7 @@ struct _ClutterActorPrivate guint clear_stage_views_needs_stage_views_changed : 1; guint needs_redraw : 1; guint needs_finish_layout : 1; @@ -31,7 +31,7 @@ index dd0d5ceb6..70dea5ca2 100644 }; enum -@@ -2425,7 +2425,7 @@ absolute_geometry_changed (ClutterActor *actor) +@@ -2309,7 +2309,7 @@ absolute_geometry_changed (ClutterActor { actor->priv->needs_update_stage_views = TRUE; actor->priv->needs_visible_paint_volume_update = TRUE; @@ -40,7 +40,7 @@ index dd0d5ceb6..70dea5ca2 100644 actor->priv->needs_finish_layout = TRUE; /* needs_finish_layout is already TRUE on the whole parent tree thanks -@@ -3047,9 +3047,8 @@ _clutter_actor_apply_relative_transformation_matrix (ClutterActor *self, +@@ -2931,9 +2931,8 @@ _clutter_actor_apply_relative_transforma graphene_matrix_t *matrix) { ClutterActorPrivate *priv = self->priv; @@ -52,7 +52,7 @@ index dd0d5ceb6..70dea5ca2 100644 /* Note we terminate before ever calling stage->apply_transform() * since that would conceptually be relative to the underlying -@@ -3058,63 +3057,37 @@ _clutter_actor_apply_relative_transformation_matrix (ClutterActor *self, +@@ -2942,63 +2941,37 @@ _clutter_actor_apply_relative_transforma if (self == ancestor) return; @@ -130,7 +130,7 @@ index dd0d5ceb6..70dea5ca2 100644 return; } -@@ -7469,7 +7442,7 @@ clutter_actor_init (ClutterActor *self) +@@ -7362,7 +7335,7 @@ clutter_actor_init (ClutterActor *self) priv->enable_model_view_transform = TRUE; priv->transform_valid = FALSE; @@ -139,6 +139,3 @@ index dd0d5ceb6..70dea5ca2 100644 /* the default is to stretch the content, to match the * current behaviour of basically all actors. also, it's --- -2.44.0 - diff --git a/_service b/_service index 672f565..9baf096 100644 --- a/_service +++ b/_service @@ -3,7 +3,7 @@ git https://gitlab.gnome.org/GNOME/mutter.git - 46.2 + 46.3 @PARENT_TAG@+@TAG_OFFSET@ (.*)\+0 \1 diff --git a/mutter-46.2.obscpio b/mutter-46.2.obscpio deleted file mode 100644 index 3e3d63d..0000000 --- a/mutter-46.2.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ce3630afa7ea7f0edef6720a8956b3bf154fe91e88fe5c1bd06744e6b84862df -size 30467085 diff --git a/mutter-46.3.obscpio b/mutter-46.3.obscpio new file mode 100644 index 0000000..a36696f --- /dev/null +++ b/mutter-46.3.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ff1c1a9283464bf1c42ab5cd9d8ce9f653dcf0d66b6bf8f1e2e1f26724f87da +size 30411277 diff --git a/mutter-disable-cvt-s390x.patch b/mutter-disable-cvt-s390x.patch index eb16e8b..30680d1 100644 --- a/mutter-disable-cvt-s390x.patch +++ b/mutter-disable-cvt-s390x.patch @@ -1,6 +1,7 @@ -diff -druN mutter-45.1.orig/src/backends/native/meta-default-modes-s390x.h mutter-45.1/src/backends/native/meta-default-modes-s390x.h ---- mutter-45.1.orig/src/backends/native/meta-default-modes-s390x.h 1970-01-01 01:00:00.000000000 +0100 -+++ mutter-45.1/src/backends/native/meta-default-modes-s390x.h 2024-01-23 16:35:55.791416596 +0100 +Index: mutter-46.3/src/backends/native/meta-default-modes-s390x.h +=================================================================== +--- /dev/null ++++ mutter-46.3/src/backends/native/meta-default-modes-s390x.h @@ -0,0 +1,57 @@ +/* Generated by gen-default-modes.py */ + @@ -59,10 +60,11 @@ diff -druN mutter-45.1.orig/src/backends/native/meta-default-modes-s390x.h mutte +{ 813000, 2304, 2307, 2312, 2386, 0, 4096, 4440, 4888, 5680, 0, 0, DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC, DRM_MODE_TYPE_DEFAULT, "2304x4096_60.00" }, +{ 1276500, 2880, 2883, 2888, 2982, 0, 5120, 5560, 6128, 7136, 0, 0, DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NVSYNC, DRM_MODE_TYPE_DEFAULT, "2880x5120_60.00" }, +}; -diff -druN mutter-45.1.orig/src/meson.build mutter-45.1/src/meson.build ---- mutter-45.1.orig/src/meson.build 2023-10-31 19:35:00.000000000 +0100 -+++ mutter-45.1/src/meson.build 2024-01-23 18:07:33.487280694 +0100 -@@ -958,6 +958,7 @@ +Index: mutter-46.3/src/meson.build +=================================================================== +--- mutter-46.3.orig/src/meson.build ++++ mutter-46.3/src/meson.build +@@ -968,6 +968,7 @@ if have_profiler endif if have_native_backend @@ -70,7 +72,7 @@ diff -druN mutter-45.1.orig/src/meson.build mutter-45.1/src/meson.build cvt = find_program('cvt') gen_default_modes = find_program('backends/native/gen-default-modes.py') -@@ -965,6 +966,13 @@ +@@ -975,6 +976,13 @@ if have_native_backend output: 'meta-default-modes.h', command: [gen_default_modes, '@OUTPUT@'] ) diff --git a/mutter-fix-x11-restart.patch b/mutter-fix-x11-restart.patch index 82a49de..4896ee7 100644 --- a/mutter-fix-x11-restart.patch +++ b/mutter-fix-x11-restart.patch @@ -20,11 +20,11 @@ Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3089 src/x11/meta-x11-display.c | 1 - 3 files changed, 3 insertions(+), 1 deletion(-) -diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c -index 1ad3327ddf6..ce7bc1945ce 100644 ---- a/src/compositor/meta-compositor-x11.c -+++ b/src/compositor/meta-compositor-x11.c -@@ -188,6 +188,8 @@ meta_compositor_x11_manage (MetaCompositor *compositor, +Index: mutter-46.3/src/compositor/meta-compositor-x11.c +=================================================================== +--- mutter-46.3.orig/src/compositor/meta-compositor-x11.c ++++ mutter-46.3/src/compositor/meta-compositor-x11.c +@@ -188,6 +188,8 @@ meta_compositor_x11_manage (MetaComposit compositor_x11->have_x11_sync_object = meta_sync_ring_init (xdisplay); @@ -33,11 +33,11 @@ index 1ad3327ddf6..ce7bc1945ce 100644 return TRUE; } -diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c -index e95ca564010..83f2fcb25d9 100644 ---- a/src/wayland/meta-xwayland.c -+++ b/src/wayland/meta-xwayland.c -@@ -1170,6 +1170,7 @@ on_x11_display_setup (MetaDisplay *display, +Index: mutter-46.3/src/wayland/meta-xwayland.c +=================================================================== +--- mutter-46.3.orig/src/wayland/meta-xwayland.c ++++ mutter-46.3/src/wayland/meta-xwayland.c +@@ -1180,6 +1180,7 @@ on_x11_display_setup (MetaDisplay { MetaX11Display *x11_display = meta_display_get_x11_display (display); @@ -45,39 +45,62 @@ index e95ca564010..83f2fcb25d9 100644 meta_xwayland_init_dnd (x11_display); meta_xwayland_init_xrandr (manager, x11_display); } -diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c -index 4e98203dd25..c634a71fb2a 100644 ---- a/src/x11/meta-x11-display.c -+++ b/src/x11/meta-x11-display.c -@@ -301,7 +301,6 @@ on_x11_display_opened (MetaX11Display *x11_display, +Index: mutter-46.3/src/x11/meta-x11-display.c +=================================================================== +--- mutter-46.3.orig/src/x11/meta-x11-display.c ++++ mutter-46.3/src/x11/meta-x11-display.c +@@ -306,8 +306,32 @@ static void + on_x11_display_opened (MetaX11Display *x11_display, MetaDisplay *display) { ++ Window old_active_xwindow = None; ++ ++ if (!meta_is_wayland_compositor ()) ++ { ++ meta_prop_get_window (display->x11_display, ++ display->x11_display->xroot, ++ display->x11_display->atom__NET_ACTIVE_WINDOW, ++ &old_active_xwindow); ++ } ++ meta_display_manage_all_xwindows (display); - meta_x11_display_redirect_windows (x11_display, display); ++ ++ if (old_active_xwindow != None) ++ { ++ MetaWindow *old_active_window; ++ ++ old_active_window = meta_x11_display_lookup_x_window (x11_display, ++ old_active_xwindow); ++ if (old_active_window) ++ { ++ uint32_t timestamp; ++ ++ timestamp = display->x11_display->timestamp; ++ meta_window_focus (old_active_window, timestamp); ++ } ++ } } static void --- -GitLab - - -From 77fc07943c3171a5e7a047ca34af46feeca347c2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Fri, 20 Oct 2023 17:03:31 +0800 -Subject: [PATCH 2/4] display: Move X11 initial focus handling to - MetaX11Display - -It's X11 specific, so put it in the X11 display manager object. ---- - src/core/display.c | 34 ---------------------------------- - src/x11/meta-x11-display.c | 25 +++++++++++++++++++++++++ - 2 files changed, 25 insertions(+), 34 deletions(-) - -diff --git a/src/core/display.c b/src/core/display.c -index 0a191c0fbca..b16e50e21de 100644 ---- a/src/core/display.c -+++ b/src/core/display.c -@@ -930,9 +930,6 @@ meta_display_new (MetaContext *context, +Index: mutter-46.3/src/core/display.c +=================================================================== +--- mutter-46.3.orig/src/core/display.c ++++ mutter-46.3/src/core/display.c +@@ -908,9 +908,9 @@ meta_display_init_x11 (MetaDisplay + } + + static void +-on_x11_initialized (MetaDisplay *display, +- GAsyncResult *result, +- gpointer user_data) ++on_mandatory_x11_initialized (MetaDisplay *display, ++ GAsyncResult *result, ++ gpointer user_data) + { + g_autoptr (GError) error = NULL; + +@@ -941,9 +941,6 @@ meta_display_new (MetaContext *context, MetaDisplay *display; MetaDisplayPrivate *priv; guint32 timestamp; @@ -87,7 +110,16 @@ index 0a191c0fbca..b16e50e21de 100644 MetaMonitorManager *monitor_manager; MetaSettings *settings; MetaInputCapture *input_capture; -@@ -1048,14 +1045,6 @@ meta_display_new (MetaContext *context, +@@ -1032,7 +1029,7 @@ meta_display_new (MetaContext *context, + if (x11_display_policy == META_X11_DISPLAY_POLICY_MANDATORY) + { + meta_display_init_x11 (display, NULL, +- (GAsyncReadyCallback) on_x11_initialized, ++ (GAsyncReadyCallback) on_mandatory_x11_initialized, + NULL); + } + #endif /* HAVE_XWAYLAND */ +@@ -1059,14 +1056,6 @@ meta_display_new (MetaContext *context, display->last_focus_time = timestamp; display->last_user_time = timestamp; @@ -102,7 +134,7 @@ index 0a191c0fbca..b16e50e21de 100644 if (!meta_compositor_manage (display->compositor, error)) { g_object_unref (display); -@@ -1076,30 +1065,7 @@ meta_display_new (MetaContext *context, +@@ -1087,30 +1076,7 @@ meta_display_new (MetaContext *context, g_signal_connect (display->gesture_tracker, "state-changed", G_CALLBACK (gesture_tracker_state_changed), display); @@ -133,67 +165,10 @@ index 0a191c0fbca..b16e50e21de 100644 g_signal_connect (stage, "notify::is-grabbed", G_CALLBACK (on_is_grabbed_changed), display); -diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c -index c634a71fb2a..599968a363b 100644 ---- a/src/x11/meta-x11-display.c -+++ b/src/x11/meta-x11-display.c -@@ -300,7 +300,32 @@ static void - on_x11_display_opened (MetaX11Display *x11_display, - MetaDisplay *display) - { -+ Window old_active_xwindow = None; -+ -+ if (!meta_is_wayland_compositor ()) -+ { -+ meta_prop_get_window (display->x11_display, -+ display->x11_display->xroot, -+ display->x11_display->atom__NET_ACTIVE_WINDOW, -+ &old_active_xwindow); -+ } -+ - meta_display_manage_all_xwindows (display); -+ -+ if (old_active_xwindow != None) -+ { -+ MetaWindow *old_active_window; -+ -+ old_active_window = meta_x11_display_lookup_x_window (x11_display, -+ old_active_xwindow); -+ if (old_active_window) -+ { -+ uint32_t timestamp; -+ -+ timestamp = display->x11_display->timestamp; -+ meta_window_focus (old_active_window, timestamp); -+ } -+ } - } - - static void --- -GitLab - - -From 668eb0d198dba58c7833b09926dce2f043889155 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Tue, 17 Oct 2023 15:46:00 +0800 -Subject: [PATCH 3/4] tests/x11: Fix replace test to catch the second instance - failing - -The test never noticed that the second instance never actually managed -to load; it was looping a multi second retry session trying to redirect -windows, meaning it failed to catch https://gitlab.gnome.org/GNOME/mutter/-/issues/3089. - -Fix the test so that it always waits for mutter to finish loading -successfully, just like it waits fro the first. ---- - src/tests/x11-test.sh | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/src/tests/x11-test.sh b/src/tests/x11-test.sh -index 59e460fc336..d95b2460f6e 100755 ---- a/src/tests/x11-test.sh -+++ b/src/tests/x11-test.sh +Index: mutter-46.3/src/tests/x11-test.sh +=================================================================== +--- mutter-46.3.orig/src/tests/x11-test.sh ++++ mutter-46.3/src/tests/x11-test.sh @@ -34,6 +34,9 @@ echo \# Launched with pid $MUTTER2_PID MUTTER2_PID=$! wait $MUTTER1_PID @@ -204,48 +179,3 @@ index 59e460fc336..d95b2460f6e 100755 sleep 2 echo \# Terminating clients > /dev/stderr --- -GitLab - - -From 8e6f18fcaf63968b0a75bf65da0c00473d71acb3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -Date: Mon, 23 Oct 2023 14:47:33 +0800 -Subject: [PATCH 4/4] display: Rename mandatory X11 initialization function - -Simply to make it clear that the renamed function is specific to a -particular X11 initialization mode (mandatory Xwayland), put that in the -name, so that it's easier to understand when this function is relevant. ---- - src/core/display.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/src/core/display.c b/src/core/display.c -index b16e50e21de..f851f1be372 100644 ---- a/src/core/display.c -+++ b/src/core/display.c -@@ -897,9 +897,9 @@ meta_display_init_x11 (MetaDisplay *display, - } - - static void --on_x11_initialized (MetaDisplay *display, -- GAsyncResult *result, -- gpointer user_data) -+on_mandatory_x11_initialized (MetaDisplay *display, -+ GAsyncResult *result, -+ gpointer user_data) - { - g_autoptr (GError) error = NULL; - -@@ -1018,7 +1018,7 @@ meta_display_new (MetaContext *context, - if (x11_display_policy == META_X11_DISPLAY_POLICY_MANDATORY) - { - meta_display_init_x11 (display, NULL, -- (GAsyncReadyCallback) on_x11_initialized, -+ (GAsyncReadyCallback) on_mandatory_x11_initialized, - NULL); - } - #endif /* HAVE_XWAYLAND */ --- -GitLab - diff --git a/mutter-implement-text-input-v1.patch b/mutter-implement-text-input-v1.patch index 278b226..cbbb08b 100644 --- a/mutter-implement-text-input-v1.patch +++ b/mutter-implement-text-input-v1.patch @@ -1,7 +1,8 @@ -From 6b9bbebbdc3a8b35f898a269227f36a36590359e Mon Sep 17 00:00:00 2001 +From 2a94e19b00434fe4d7ab858a6cdcff6364f6e408 Mon Sep 17 00:00:00 2001 From: Alynx Zhou Date: Wed, 15 May 2024 00:07:41 +0800 -Subject: [PATCH] wayland/text-input-v1: Implement basic text-input-v1 support +Subject: [PATCH 2/2] wayland/text-input-v1: Implement basic text-input-v1 + support This commit makes input methods work in text-input-v1 only clients (mostly Chromium/Electron based apps with Ozone Wayland), which is @@ -24,10 +25,10 @@ Closes . create mode 100644 src/wayland/meta-wayland-text-input-v1.c create mode 100644 src/wayland/meta-wayland-text-input-v1.h -diff --git a/clutter/clutter/clutter-enums.h b/clutter/clutter/clutter-enums.h -index 45956bf57..8198e7351 100644 ---- a/clutter/clutter/clutter-enums.h -+++ b/clutter/clutter/clutter-enums.h +Index: mutter-46.3/clutter/clutter/clutter-enums.h +=================================================================== +--- mutter-46.3.orig/clutter/clutter/clutter-enums.h ++++ mutter-46.3/clutter/clutter/clutter-enums.h @@ -1183,6 +1183,9 @@ typedef enum CLUTTER_INPUT_CONTENT_HINT_SENSITIVE_DATA = 1 << 7, CLUTTER_INPUT_CONTENT_HINT_LATIN = 1 << 8, @@ -38,11 +39,11 @@ index 45956bf57..8198e7351 100644 } ClutterInputContentHintFlags; typedef enum -diff --git a/src/core/events.c b/src/core/events.c -index 4261bfb98..35b94e187 100644 ---- a/src/core/events.c -+++ b/src/core/events.c -@@ -238,6 +238,7 @@ meta_display_handle_event (MetaDisplay *display, +Index: mutter-46.3/src/core/events.c +=================================================================== +--- mutter-46.3.orig/src/core/events.c ++++ mutter-46.3/src/core/events.c +@@ -238,6 +238,7 @@ meta_display_handle_event (MetaDisplay #ifdef HAVE_WAYLAND MetaWaylandCompositor *wayland_compositor; MetaWaylandTextInput *wayland_text_input = NULL; @@ -50,7 +51,7 @@ index 4261bfb98..35b94e187 100644 #endif #ifdef HAVE_WAYLAND -@@ -246,6 +247,8 @@ meta_display_handle_event (MetaDisplay *display, +@@ -246,6 +247,8 @@ meta_display_handle_event (MetaDisplay { wayland_text_input = meta_wayland_compositor_get_text_input (wayland_compositor); @@ -59,15 +60,14 @@ index 4261bfb98..35b94e187 100644 } #endif -@@ -287,10 +290,12 @@ meta_display_handle_event (MetaDisplay *display, +@@ -287,9 +290,11 @@ meta_display_handle_event (MetaDisplay } #ifdef HAVE_WAYLAND - if (wayland_text_input && -- !has_grab && -+ if (!has_grab && - !meta_compositor_get_current_window_drag (compositor) && +- !meta_compositor_get_current_window_drag (compositor) && - meta_wayland_text_input_update (wayland_text_input, event)) ++ if (!meta_compositor_get_current_window_drag (compositor) && + ((wayland_text_input && + meta_wayland_text_input_update (wayland_text_input, event)) || + (wayland_text_input_v1 && @@ -75,11 +75,11 @@ index 4261bfb98..35b94e187 100644 return CLUTTER_EVENT_STOP; if (wayland_compositor) -diff --git a/src/meson.build b/src/meson.build -index 3060b2880..12a249c54 100644 ---- a/src/meson.build -+++ b/src/meson.build -@@ -687,6 +687,8 @@ if have_wayland +Index: mutter-46.3/src/meson.build +=================================================================== +--- mutter-46.3.orig/src/meson.build ++++ mutter-46.3/src/meson.build +@@ -688,6 +688,8 @@ if have_wayland 'wayland/meta-wayland-tablet-tool.h', 'wayland/meta-wayland-text-input.c', 'wayland/meta-wayland-text-input.h', @@ -88,7 +88,7 @@ index 3060b2880..12a249c54 100644 'wayland/meta-wayland-touch.c', 'wayland/meta-wayland-touch.h', 'wayland/meta-wayland-transaction.c', -@@ -1075,6 +1077,7 @@ if have_wayland +@@ -1084,6 +1086,7 @@ if have_wayland ['single-pixel-buffer', 'staging', 'v1', ], ['tablet', 'unstable', 'v2', ], ['text-input', 'unstable', 'v3', ], @@ -96,19 +96,19 @@ index 3060b2880..12a249c54 100644 ['viewporter', 'stable', ], ['xdg-activation', 'staging', 'v1', ], ['xdg-foreign', 'unstable', 'v1', ], -diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c -index f8d58a612..fca0b346d 100644 ---- a/src/wayland/meta-wayland-seat.c -+++ b/src/wayland/meta-wayland-seat.c -@@ -228,6 +228,7 @@ default_focus (MetaWaylandEventHandler *handler, - meta_wayland_data_device_primary_sync_focus (&seat->primary_data_device); +Index: mutter-46.3/src/wayland/meta-wayland-seat.c +=================================================================== +--- mutter-46.3.orig/src/wayland/meta-wayland-seat.c ++++ mutter-46.3/src/wayland/meta-wayland-seat.c +@@ -229,6 +229,7 @@ default_focus (MetaWaylandEventHandler * + surface); meta_wayland_tablet_seat_set_pad_focus (seat->tablet_seat, surface); meta_wayland_text_input_set_focus (seat->text_input, surface); + /* text-input-v1 will set focused surface on activate. */ } if (caps & CLUTTER_INPUT_CAPABILITY_TABLET_TOOL) -@@ -289,6 +290,8 @@ meta_wayland_seat_new (MetaWaylandCompositor *compositor, +@@ -290,6 +291,8 @@ meta_wayland_seat_new (MetaWaylandCompos NULL); seat->text_input = meta_wayland_text_input_new (seat); @@ -117,7 +117,7 @@ index f8d58a612..fca0b346d 100644 meta_wayland_data_device_init (&seat->data_device, seat); meta_wayland_data_device_primary_init (&seat->primary_data_device, seat); -@@ -337,6 +340,7 @@ meta_wayland_seat_free (MetaWaylandSeat *seat) +@@ -338,6 +341,7 @@ meta_wayland_seat_free (MetaWaylandSeat g_object_unref (seat->touch); meta_wayland_text_input_destroy (seat->text_input); @@ -125,7 +125,7 @@ index f8d58a612..fca0b346d 100644 g_free (seat); } -@@ -477,7 +481,10 @@ meta_wayland_seat_handle_event_internal (MetaWaylandSeat *seat, +@@ -478,7 +482,10 @@ meta_wayland_seat_handle_event_internal if (event_type == CLUTTER_BUTTON_PRESS || event_type == CLUTTER_TOUCH_BEGIN) { @@ -137,7 +137,7 @@ index f8d58a612..fca0b346d 100644 } switch (event_type) -@@ -509,7 +516,8 @@ meta_wayland_seat_handle_event_internal (MetaWaylandSeat *seat, +@@ -510,7 +517,8 @@ meta_wayland_seat_handle_event_internal case CLUTTER_IM_COMMIT: case CLUTTER_IM_DELETE: case CLUTTER_IM_PREEDIT: @@ -147,10 +147,10 @@ index f8d58a612..fca0b346d 100644 return TRUE; break; -diff --git a/src/wayland/meta-wayland-seat.h b/src/wayland/meta-wayland-seat.h -index 169a92e4e..10633b029 100644 ---- a/src/wayland/meta-wayland-seat.h -+++ b/src/wayland/meta-wayland-seat.h +Index: mutter-46.3/src/wayland/meta-wayland-seat.h +=================================================================== +--- mutter-46.3.orig/src/wayland/meta-wayland-seat.h ++++ mutter-46.3/src/wayland/meta-wayland-seat.h @@ -30,6 +30,7 @@ #include "wayland/meta-wayland-pointer.h" #include "wayland/meta-wayland-tablet-tool.h" @@ -167,11 +167,10 @@ index 169a92e4e..10633b029 100644 MetaWaylandInput *input_handler; MetaWaylandEventHandler *default_handler; -diff --git a/src/wayland/meta-wayland-text-input-v1.c b/src/wayland/meta-wayland-text-input-v1.c -new file mode 100644 -index 000000000..1826a4ff4 +Index: mutter-46.3/src/wayland/meta-wayland-text-input-v1.c +=================================================================== --- /dev/null -+++ b/src/wayland/meta-wayland-text-input-v1.c ++++ mutter-46.3/src/wayland/meta-wayland-text-input-v1.c @@ -0,0 +1,859 @@ +/* + * Copyright (C) 2024 SUSE LLC @@ -1032,11 +1031,10 @@ index 000000000..1826a4ff4 + + return retval; +} -diff --git a/src/wayland/meta-wayland-text-input-v1.h b/src/wayland/meta-wayland-text-input-v1.h -new file mode 100644 -index 000000000..79b1c0a54 +Index: mutter-46.3/src/wayland/meta-wayland-text-input-v1.h +=================================================================== --- /dev/null -+++ b/src/wayland/meta-wayland-text-input-v1.h ++++ mutter-46.3/src/wayland/meta-wayland-text-input-v1.h @@ -0,0 +1,38 @@ +/* + * Copyright (C) 2024 SUSE LLC @@ -1076,10 +1074,10 @@ index 000000000..79b1c0a54 + +gboolean meta_wayland_text_input_v1_handle_event (MetaWaylandTextInputV1 *text_input, + const ClutterEvent *event); -diff --git a/src/wayland/meta-wayland-versions.h b/src/wayland/meta-wayland-versions.h -index 900f30d78..a77b81461 100644 ---- a/src/wayland/meta-wayland-versions.h -+++ b/src/wayland/meta-wayland-versions.h +Index: mutter-46.3/src/wayland/meta-wayland-versions.h +=================================================================== +--- mutter-46.3.orig/src/wayland/meta-wayland-versions.h ++++ mutter-46.3/src/wayland/meta-wayland-versions.h @@ -49,6 +49,7 @@ #define META_ZXDG_OUTPUT_V1_VERSION 3 #define META_ZWP_XWAYLAND_KEYBOARD_GRAB_V1_VERSION 1 @@ -1088,11 +1086,11 @@ index 900f30d78..a77b81461 100644 #define META_WP_VIEWPORTER_VERSION 1 #define META_ZWP_PRIMARY_SELECTION_V1_VERSION 1 #define META_WP_PRESENTATION_VERSION 1 -diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c -index 501b69a91..0114823c1 100644 ---- a/src/wayland/meta-wayland.c -+++ b/src/wayland/meta-wayland.c -@@ -865,6 +865,7 @@ meta_wayland_compositor_new (MetaContext *context) +Index: mutter-46.3/src/wayland/meta-wayland.c +=================================================================== +--- mutter-46.3.orig/src/wayland/meta-wayland.c ++++ mutter-46.3/src/wayland/meta-wayland.c +@@ -865,6 +865,7 @@ meta_wayland_compositor_new (MetaContext meta_wayland_keyboard_shortcuts_inhibit_init (compositor); meta_wayland_surface_inhibit_shortcuts_dialog_init (); meta_wayland_text_input_init (compositor); @@ -1100,7 +1098,7 @@ index 501b69a91..0114823c1 100644 meta_wayland_init_presentation_time (compositor); meta_wayland_activation_init (compositor); meta_wayland_transaction_init (compositor); -@@ -1124,6 +1125,12 @@ meta_wayland_compositor_get_text_input (MetaWaylandCompositor *compositor) +@@ -1124,6 +1125,12 @@ meta_wayland_compositor_get_text_input ( return compositor->seat->text_input; } @@ -1113,10 +1111,10 @@ index 501b69a91..0114823c1 100644 static void meta_wayland_compositor_update_focus (MetaWaylandCompositor *compositor, MetaWindow *window) -diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h -index 0a0476eba..c23e82cdc 100644 ---- a/src/wayland/meta-wayland.h -+++ b/src/wayland/meta-wayland.h +Index: mutter-46.3/src/wayland/meta-wayland.h +=================================================================== +--- mutter-46.3.orig/src/wayland/meta-wayland.h ++++ mutter-46.3/src/wayland/meta-wayland.h @@ -26,6 +26,7 @@ #include "meta/types.h" #include "meta/meta-wayland-compositor.h" @@ -1125,7 +1123,7 @@ index 0a0476eba..c23e82cdc 100644 #include "wayland/meta-wayland-types.h" META_EXPORT_TEST -@@ -88,6 +89,7 @@ void meta_wayland_compositor_schedule_surface_association (Me +@@ -88,6 +89,7 @@ void meta_wayland_com MetaWindow *window); MetaWaylandTextInput * meta_wayland_compositor_get_text_input (MetaWaylandCompositor *compositor); @@ -1133,6 +1131,3 @@ index 0a0476eba..c23e82cdc 100644 #ifdef HAVE_XWAYLAND void meta_wayland_compositor_notify_surface_id (MetaWaylandCompositor *compositor, --- -2.45.0 - diff --git a/mutter-window-actor-Special-case-shaped-Java-windows.patch b/mutter-window-actor-Special-case-shaped-Java-windows.patch index 97f2872..0b0d790 100644 --- a/mutter-window-actor-Special-case-shaped-Java-windows.patch +++ b/mutter-window-actor-Special-case-shaped-Java-windows.patch @@ -13,11 +13,11 @@ by special-casing shaped Java windows. src/x11/window-x11.c | 9 +++++++++ 3 files changed, 19 insertions(+) -diff --git a/src/compositor/meta-window-actor-x11.c b/src/compositor/meta-window-actor-x11.c -index 19827af331..7d5e46ac75 100644 ---- a/src/compositor/meta-window-actor-x11.c -+++ b/src/compositor/meta-window-actor-x11.c -@@ -424,6 +424,14 @@ has_shadow (MetaWindowActorX11 *actor_x11) +Index: mutter-46.3/src/compositor/meta-window-actor-x11.c +=================================================================== +--- mutter-46.3.orig/src/compositor/meta-window-actor-x11.c ++++ mutter-46.3/src/compositor/meta-window-actor-x11.c +@@ -424,6 +424,14 @@ has_shadow (MetaWindowActorX11 *actor_x1 */ if (window->has_custom_frame_extents) return FALSE; @@ -32,11 +32,11 @@ index 19827af331..7d5e46ac75 100644 /* * Generate shadows for all other windows. -diff --git a/src/x11/window-x11-private.h b/src/x11/window-x11-private.h -index c947744ee5..cb862f0d72 100644 ---- a/src/x11/window-x11-private.h -+++ b/src/x11/window-x11-private.h -@@ -125,6 +125,8 @@ gboolean meta_window_x11_has_pointer (MetaWindow *window); +Index: mutter-46.3/src/x11/window-x11-private.h +=================================================================== +--- mutter-46.3.orig/src/x11/window-x11-private.h ++++ mutter-46.3/src/x11/window-x11-private.h +@@ -125,6 +125,8 @@ gboolean meta_window_x11_has_pointer (Me gboolean meta_window_x11_same_application (MetaWindow *window, MetaWindow *other_window); @@ -45,11 +45,11 @@ index c947744ee5..cb862f0d72 100644 void meta_window_x11_shutdown_group (MetaWindow *window); META_EXPORT -diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c -index 745c45db18..83cdd2e420 100644 ---- a/src/x11/window-x11.c -+++ b/src/x11/window-x11.c -@@ -2585,6 +2585,15 @@ meta_window_x11_update_shape_region (MetaWindow *window) +Index: mutter-46.3/src/x11/window-x11.c +=================================================================== +--- mutter-46.3.orig/src/x11/window-x11.c ++++ mutter-46.3/src/x11/window-x11.c +@@ -2582,6 +2582,15 @@ meta_window_x11_update_shape_region (Met meta_window_set_shape_region (window, region); } @@ -65,7 +65,3 @@ index 745c45db18..83cdd2e420 100644 /* Generally meta_window_x11_same_application() is a better idea * of "sameness", since it handles the case where multiple apps * want to look like the same app or the same app wants to look --- -2.43.2 - - diff --git a/mutter.changes b/mutter.changes index 8dde097..a641871 100644 --- a/mutter.changes +++ b/mutter.changes @@ -1,3 +1,22 @@ +------------------------------------------------------------------- +Sun Jun 30 08:50:32 UTC 2024 - Bjørn Lie + +- Update to version 46.3: + + Fix performance issues with second virtual monitor + + Fix missing unmap animation of some windows + + Fix placement/resizing regression + + Fix possible out of sync primary selections and clipboard + + Fix ibus support in popups + + Fix hardware accelerated rendering when headless + + Add back support for legacy X11 cursor themes + + Fix preedit offsets + + Use character offsets to specify surrounding text + + Don't force titlebar on screen on all interactive resizes + + Fixed crashes + + Misc. bug fixes and cleanups + + Updated translations. +- Rebase patches with quilt. + ------------------------------------------------------------------- Mon May 27 07:13:01 UTC 2024 - Dominique Leuenberger diff --git a/mutter.obsinfo b/mutter.obsinfo index 9ac3081..2ec8c9b 100644 --- a/mutter.obsinfo +++ b/mutter.obsinfo @@ -1,4 +1,4 @@ name: mutter -version: 46.2 -mtime: 1716654802 -commit: 02050414855b370dbf2b08a971c8b332f7b3c9f4 +version: 46.3 +mtime: 1719689543 +commit: 3998f8a422e89c6a64a79e2ce23f9389c0feb7f9 diff --git a/mutter.spec b/mutter.spec index 06b99cf..05eca9d 100644 --- a/mutter.spec +++ b/mutter.spec @@ -22,7 +22,7 @@ %define api_minor 0 %define libmutter libmutter-%{api_major}-%{api_minor} Name: mutter -Version: 46.2 +Version: 46.3 Release: 0 Summary: Window and compositing manager based on Clutter License: GPL-2.0-or-later