Accepting request 1184258 from GNOME:Factory

- 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. (forwarded request 1184101 from iznogood)

OBS-URL: https://build.opensuse.org/request/show/1184258
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mutter?expand=0&rev=230
This commit is contained in:
Ana Guerrero 2024-07-02 16:16:05 +00:00 committed by Git OBS Bridge
commit 256d7a54f4
11 changed files with 193 additions and 254 deletions

View File

@ -9,11 +9,11 @@ This reverts commit 703bbe0e99dbb688352e0bff396e5cbf2c6af45b.
clutter/clutter/clutter-actor.c | 67 ++++++++++----------------------- clutter/clutter/clutter-actor.c | 67 ++++++++++-----------------------
1 file changed, 20 insertions(+), 47 deletions(-) 1 file changed, 20 insertions(+), 47 deletions(-)
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c Index: mutter-46.3/clutter/clutter/clutter-actor.c
index dd0d5ceb6..70dea5ca2 100644 ===================================================================
--- a/clutter/clutter/clutter-actor.c --- mutter-46.3.orig/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c +++ mutter-46.3/clutter/clutter/clutter-actor.c
@@ -612,7 +612,7 @@ struct _ClutterActorPrivate @@ -566,7 +566,7 @@ struct _ClutterActorPrivate
/* the cached transformation matrix; see apply_transform() */ /* the cached transformation matrix; see apply_transform() */
graphene_matrix_t transform; graphene_matrix_t transform;
@ -22,7 +22,7 @@ index dd0d5ceb6..70dea5ca2 100644
float resource_scale; 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 clear_stage_views_needs_stage_views_changed : 1;
guint needs_redraw : 1; guint needs_redraw : 1;
guint needs_finish_layout : 1; guint needs_finish_layout : 1;
@ -31,7 +31,7 @@ index dd0d5ceb6..70dea5ca2 100644
}; };
enum 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_update_stage_views = TRUE;
actor->priv->needs_visible_paint_volume_update = TRUE; actor->priv->needs_visible_paint_volume_update = TRUE;
@ -40,7 +40,7 @@ index dd0d5ceb6..70dea5ca2 100644
actor->priv->needs_finish_layout = TRUE; actor->priv->needs_finish_layout = TRUE;
/* needs_finish_layout is already TRUE on the whole parent tree thanks /* 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) graphene_matrix_t *matrix)
{ {
ClutterActorPrivate *priv = self->priv; ClutterActorPrivate *priv = self->priv;
@ -52,7 +52,7 @@ index dd0d5ceb6..70dea5ca2 100644
/* Note we terminate before ever calling stage->apply_transform() /* Note we terminate before ever calling stage->apply_transform()
* since that would conceptually be relative to the underlying * 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) if (self == ancestor)
return; return;
@ -130,7 +130,7 @@ index dd0d5ceb6..70dea5ca2 100644
return; 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->enable_model_view_transform = TRUE;
priv->transform_valid = FALSE; priv->transform_valid = FALSE;
@ -139,6 +139,3 @@ index dd0d5ceb6..70dea5ca2 100644
/* the default is to stretch the content, to match the /* the default is to stretch the content, to match the
* current behaviour of basically all actors. also, it's * current behaviour of basically all actors. also, it's
--
2.44.0

View File

@ -3,7 +3,7 @@
<service name="obs_scm" mode="manual"> <service name="obs_scm" mode="manual">
<param name="scm">git</param> <param name="scm">git</param>
<param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param> <param name="url">https://gitlab.gnome.org/GNOME/mutter.git</param>
<param name="revision">46.2</param> <param name="revision">46.3</param>
<param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param> <param name="versionformat">@PARENT_TAG@+@TAG_OFFSET@</param>
<param name="versionrewrite-pattern">(.*)\+0</param> <param name="versionrewrite-pattern">(.*)\+0</param>
<param name="versionrewrite-replacement">\1</param> <param name="versionrewrite-replacement">\1</param>

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ce3630afa7ea7f0edef6720a8956b3bf154fe91e88fe5c1bd06744e6b84862df
size 30467085

3
mutter-46.3.obscpio Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3ff1c1a9283464bf1c42ab5cd9d8ce9f653dcf0d66b6bf8f1e2e1f26724f87da
size 30411277

View File

@ -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 Index: mutter-46.3/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 --- /dev/null
+++ mutter-46.3/src/backends/native/meta-default-modes-s390x.h
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
+/* Generated by gen-default-modes.py */ +/* 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" }, +{ 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" }, +{ 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 Index: mutter-46.3/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 --- mutter-46.3.orig/src/meson.build
@@ -958,6 +958,7 @@ +++ mutter-46.3/src/meson.build
@@ -968,6 +968,7 @@ if have_profiler
endif endif
if have_native_backend 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') cvt = find_program('cvt')
gen_default_modes = find_program('backends/native/gen-default-modes.py') 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', output: 'meta-default-modes.h',
command: [gen_default_modes, '@OUTPUT@'] command: [gen_default_modes, '@OUTPUT@']
) )

View File

@ -20,11 +20,11 @@ Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/3089
src/x11/meta-x11-display.c | 1 - src/x11/meta-x11-display.c | 1 -
3 files changed, 3 insertions(+), 1 deletion(-) 3 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c Index: mutter-46.3/src/compositor/meta-compositor-x11.c
index 1ad3327ddf6..ce7bc1945ce 100644 ===================================================================
--- a/src/compositor/meta-compositor-x11.c --- mutter-46.3.orig/src/compositor/meta-compositor-x11.c
+++ b/src/compositor/meta-compositor-x11.c +++ mutter-46.3/src/compositor/meta-compositor-x11.c
@@ -188,6 +188,8 @@ meta_compositor_x11_manage (MetaCompositor *compositor, @@ -188,6 +188,8 @@ meta_compositor_x11_manage (MetaComposit
compositor_x11->have_x11_sync_object = meta_sync_ring_init (xdisplay); compositor_x11->have_x11_sync_object = meta_sync_ring_init (xdisplay);
@ -33,11 +33,11 @@ index 1ad3327ddf6..ce7bc1945ce 100644
return TRUE; return TRUE;
} }
diff --git a/src/wayland/meta-xwayland.c b/src/wayland/meta-xwayland.c Index: mutter-46.3/src/wayland/meta-xwayland.c
index e95ca564010..83f2fcb25d9 100644 ===================================================================
--- a/src/wayland/meta-xwayland.c --- mutter-46.3.orig/src/wayland/meta-xwayland.c
+++ b/src/wayland/meta-xwayland.c +++ mutter-46.3/src/wayland/meta-xwayland.c
@@ -1170,6 +1170,7 @@ on_x11_display_setup (MetaDisplay *display, @@ -1180,6 +1180,7 @@ on_x11_display_setup (MetaDisplay
{ {
MetaX11Display *x11_display = meta_display_get_x11_display (display); 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_dnd (x11_display);
meta_xwayland_init_xrandr (manager, 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: mutter-46.3/src/x11/meta-x11-display.c
index 4e98203dd25..c634a71fb2a 100644 ===================================================================
--- a/src/x11/meta-x11-display.c --- mutter-46.3.orig/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c +++ mutter-46.3/src/x11/meta-x11-display.c
@@ -301,7 +301,6 @@ on_x11_display_opened (MetaX11Display *x11_display, @@ -306,8 +306,32 @@ static void
on_x11_display_opened (MetaX11Display *x11_display,
MetaDisplay *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_display_manage_all_xwindows (display);
- meta_x11_display_redirect_windows (x11_display, 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 static void
-- Index: mutter-46.3/src/core/display.c
GitLab ===================================================================
--- 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;
From 77fc07943c3171a5e7a047ca34af46feeca347c2 Mon Sep 17 00:00:00 2001 @@ -941,9 +941,6 @@ meta_display_new (MetaContext *context,
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
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,
MetaDisplay *display; MetaDisplay *display;
MetaDisplayPrivate *priv; MetaDisplayPrivate *priv;
guint32 timestamp; guint32 timestamp;
@ -87,7 +110,16 @@ index 0a191c0fbca..b16e50e21de 100644
MetaMonitorManager *monitor_manager; MetaMonitorManager *monitor_manager;
MetaSettings *settings; MetaSettings *settings;
MetaInputCapture *input_capture; 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_focus_time = timestamp;
display->last_user_time = timestamp; display->last_user_time = timestamp;
@ -102,7 +134,7 @@ index 0a191c0fbca..b16e50e21de 100644
if (!meta_compositor_manage (display->compositor, error)) if (!meta_compositor_manage (display->compositor, error))
{ {
g_object_unref (display); 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_signal_connect (display->gesture_tracker, "state-changed",
G_CALLBACK (gesture_tracker_state_changed), display); G_CALLBACK (gesture_tracker_state_changed), display);
@ -133,67 +165,10 @@ index 0a191c0fbca..b16e50e21de 100644
g_signal_connect (stage, "notify::is-grabbed", g_signal_connect (stage, "notify::is-grabbed",
G_CALLBACK (on_is_grabbed_changed), display); G_CALLBACK (on_is_grabbed_changed), display);
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c Index: mutter-46.3/src/tests/x11-test.sh
index c634a71fb2a..599968a363b 100644 ===================================================================
--- a/src/x11/meta-x11-display.c --- mutter-46.3.orig/src/tests/x11-test.sh
+++ b/src/x11/meta-x11-display.c +++ mutter-46.3/src/tests/x11-test.sh
@@ -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?= <jadahl@gmail.com>
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
@@ -34,6 +34,9 @@ echo \# Launched with pid $MUTTER2_PID @@ -34,6 +34,9 @@ echo \# Launched with pid $MUTTER2_PID
MUTTER2_PID=$! MUTTER2_PID=$!
wait $MUTTER1_PID wait $MUTTER1_PID
@ -204,48 +179,3 @@ index 59e460fc336..d95b2460f6e 100755
sleep 2 sleep 2
echo \# Terminating clients > /dev/stderr echo \# Terminating clients > /dev/stderr
--
GitLab
From 8e6f18fcaf63968b0a75bf65da0c00473d71acb3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
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

View File

@ -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 <alynx.zhou@gmail.com> From: Alynx Zhou <alynx.zhou@gmail.com>
Date: Wed, 15 May 2024 00:07:41 +0800 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 This commit makes input methods work in text-input-v1 only clients
(mostly Chromium/Electron based apps with Ozone Wayland), which is (mostly Chromium/Electron based apps with Ozone Wayland), which is
@ -24,10 +25,10 @@ Closes <https://gitlab.gnome.org/GNOME/mutter/-/issues/3200>.
create mode 100644 src/wayland/meta-wayland-text-input-v1.c create mode 100644 src/wayland/meta-wayland-text-input-v1.c
create mode 100644 src/wayland/meta-wayland-text-input-v1.h 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: mutter-46.3/clutter/clutter/clutter-enums.h
index 45956bf57..8198e7351 100644 ===================================================================
--- a/clutter/clutter/clutter-enums.h --- mutter-46.3.orig/clutter/clutter/clutter-enums.h
+++ b/clutter/clutter/clutter-enums.h +++ mutter-46.3/clutter/clutter/clutter-enums.h
@@ -1183,6 +1183,9 @@ typedef enum @@ -1183,6 +1183,9 @@ typedef enum
CLUTTER_INPUT_CONTENT_HINT_SENSITIVE_DATA = 1 << 7, CLUTTER_INPUT_CONTENT_HINT_SENSITIVE_DATA = 1 << 7,
CLUTTER_INPUT_CONTENT_HINT_LATIN = 1 << 8, CLUTTER_INPUT_CONTENT_HINT_LATIN = 1 << 8,
@ -38,11 +39,11 @@ index 45956bf57..8198e7351 100644
} ClutterInputContentHintFlags; } ClutterInputContentHintFlags;
typedef enum typedef enum
diff --git a/src/core/events.c b/src/core/events.c Index: mutter-46.3/src/core/events.c
index 4261bfb98..35b94e187 100644 ===================================================================
--- a/src/core/events.c --- mutter-46.3.orig/src/core/events.c
+++ b/src/core/events.c +++ mutter-46.3/src/core/events.c
@@ -238,6 +238,7 @@ meta_display_handle_event (MetaDisplay *display, @@ -238,6 +238,7 @@ meta_display_handle_event (MetaDisplay
#ifdef HAVE_WAYLAND #ifdef HAVE_WAYLAND
MetaWaylandCompositor *wayland_compositor; MetaWaylandCompositor *wayland_compositor;
MetaWaylandTextInput *wayland_text_input = NULL; MetaWaylandTextInput *wayland_text_input = NULL;
@ -50,7 +51,7 @@ index 4261bfb98..35b94e187 100644
#endif #endif
#ifdef HAVE_WAYLAND #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 = wayland_text_input =
meta_wayland_compositor_get_text_input (wayland_compositor); meta_wayland_compositor_get_text_input (wayland_compositor);
@ -59,15 +60,14 @@ index 4261bfb98..35b94e187 100644
} }
#endif #endif
@@ -287,10 +290,12 @@ meta_display_handle_event (MetaDisplay *display, @@ -287,9 +290,11 @@ meta_display_handle_event (MetaDisplay
} }
#ifdef HAVE_WAYLAND #ifdef HAVE_WAYLAND
- if (wayland_text_input && - if (wayland_text_input &&
- !has_grab && - !meta_compositor_get_current_window_drag (compositor) &&
+ if (!has_grab &&
!meta_compositor_get_current_window_drag (compositor) &&
- meta_wayland_text_input_update (wayland_text_input, event)) - meta_wayland_text_input_update (wayland_text_input, event))
+ if (!meta_compositor_get_current_window_drag (compositor) &&
+ ((wayland_text_input && + ((wayland_text_input &&
+ meta_wayland_text_input_update (wayland_text_input, event)) || + meta_wayland_text_input_update (wayland_text_input, event)) ||
+ (wayland_text_input_v1 && + (wayland_text_input_v1 &&
@ -75,11 +75,11 @@ index 4261bfb98..35b94e187 100644
return CLUTTER_EVENT_STOP; return CLUTTER_EVENT_STOP;
if (wayland_compositor) if (wayland_compositor)
diff --git a/src/meson.build b/src/meson.build Index: mutter-46.3/src/meson.build
index 3060b2880..12a249c54 100644 ===================================================================
--- a/src/meson.build --- mutter-46.3.orig/src/meson.build
+++ b/src/meson.build +++ mutter-46.3/src/meson.build
@@ -687,6 +687,8 @@ if have_wayland @@ -688,6 +688,8 @@ if have_wayland
'wayland/meta-wayland-tablet-tool.h', 'wayland/meta-wayland-tablet-tool.h',
'wayland/meta-wayland-text-input.c', 'wayland/meta-wayland-text-input.c',
'wayland/meta-wayland-text-input.h', 'wayland/meta-wayland-text-input.h',
@ -88,7 +88,7 @@ index 3060b2880..12a249c54 100644
'wayland/meta-wayland-touch.c', 'wayland/meta-wayland-touch.c',
'wayland/meta-wayland-touch.h', 'wayland/meta-wayland-touch.h',
'wayland/meta-wayland-transaction.c', 'wayland/meta-wayland-transaction.c',
@@ -1075,6 +1077,7 @@ if have_wayland @@ -1084,6 +1086,7 @@ if have_wayland
['single-pixel-buffer', 'staging', 'v1', ], ['single-pixel-buffer', 'staging', 'v1', ],
['tablet', 'unstable', 'v2', ], ['tablet', 'unstable', 'v2', ],
['text-input', 'unstable', 'v3', ], ['text-input', 'unstable', 'v3', ],
@ -96,19 +96,19 @@ index 3060b2880..12a249c54 100644
['viewporter', 'stable', ], ['viewporter', 'stable', ],
['xdg-activation', 'staging', 'v1', ], ['xdg-activation', 'staging', 'v1', ],
['xdg-foreign', 'unstable', 'v1', ], ['xdg-foreign', 'unstable', 'v1', ],
diff --git a/src/wayland/meta-wayland-seat.c b/src/wayland/meta-wayland-seat.c Index: mutter-46.3/src/wayland/meta-wayland-seat.c
index f8d58a612..fca0b346d 100644 ===================================================================
--- a/src/wayland/meta-wayland-seat.c --- mutter-46.3.orig/src/wayland/meta-wayland-seat.c
+++ b/src/wayland/meta-wayland-seat.c +++ mutter-46.3/src/wayland/meta-wayland-seat.c
@@ -228,6 +228,7 @@ default_focus (MetaWaylandEventHandler *handler, @@ -229,6 +229,7 @@ default_focus (MetaWaylandEventHandler *
meta_wayland_data_device_primary_sync_focus (&seat->primary_data_device); surface);
meta_wayland_tablet_seat_set_pad_focus (seat->tablet_seat, surface); meta_wayland_tablet_seat_set_pad_focus (seat->tablet_seat, surface);
meta_wayland_text_input_set_focus (seat->text_input, surface); meta_wayland_text_input_set_focus (seat->text_input, surface);
+ /* text-input-v1 will set focused surface on activate. */ + /* text-input-v1 will set focused surface on activate. */
} }
if (caps & CLUTTER_INPUT_CAPABILITY_TABLET_TOOL) 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); NULL);
seat->text_input = meta_wayland_text_input_new (seat); 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_init (&seat->data_device, seat);
meta_wayland_data_device_primary_init (&seat->primary_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); g_object_unref (seat->touch);
meta_wayland_text_input_destroy (seat->text_input); meta_wayland_text_input_destroy (seat->text_input);
@ -125,7 +125,7 @@ index f8d58a612..fca0b346d 100644
g_free (seat); 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 || if (event_type == CLUTTER_BUTTON_PRESS ||
event_type == CLUTTER_TOUCH_BEGIN) event_type == CLUTTER_TOUCH_BEGIN)
{ {
@ -137,7 +137,7 @@ index f8d58a612..fca0b346d 100644
} }
switch (event_type) 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_COMMIT:
case CLUTTER_IM_DELETE: case CLUTTER_IM_DELETE:
case CLUTTER_IM_PREEDIT: case CLUTTER_IM_PREEDIT:
@ -147,10 +147,10 @@ index f8d58a612..fca0b346d 100644
return TRUE; return TRUE;
break; break;
diff --git a/src/wayland/meta-wayland-seat.h b/src/wayland/meta-wayland-seat.h Index: mutter-46.3/src/wayland/meta-wayland-seat.h
index 169a92e4e..10633b029 100644 ===================================================================
--- a/src/wayland/meta-wayland-seat.h --- mutter-46.3.orig/src/wayland/meta-wayland-seat.h
+++ b/src/wayland/meta-wayland-seat.h +++ mutter-46.3/src/wayland/meta-wayland-seat.h
@@ -30,6 +30,7 @@ @@ -30,6 +30,7 @@
#include "wayland/meta-wayland-pointer.h" #include "wayland/meta-wayland-pointer.h"
#include "wayland/meta-wayland-tablet-tool.h" #include "wayland/meta-wayland-tablet-tool.h"
@ -167,11 +167,10 @@ index 169a92e4e..10633b029 100644
MetaWaylandInput *input_handler; MetaWaylandInput *input_handler;
MetaWaylandEventHandler *default_handler; MetaWaylandEventHandler *default_handler;
diff --git a/src/wayland/meta-wayland-text-input-v1.c b/src/wayland/meta-wayland-text-input-v1.c Index: mutter-46.3/src/wayland/meta-wayland-text-input-v1.c
new file mode 100644 ===================================================================
index 000000000..1826a4ff4
--- /dev/null --- /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 @@ @@ -0,0 +1,859 @@
+/* +/*
+ * Copyright (C) 2024 SUSE LLC + * Copyright (C) 2024 SUSE LLC
@ -1032,11 +1031,10 @@ index 000000000..1826a4ff4
+ +
+ return retval; + return retval;
+} +}
diff --git a/src/wayland/meta-wayland-text-input-v1.h b/src/wayland/meta-wayland-text-input-v1.h Index: mutter-46.3/src/wayland/meta-wayland-text-input-v1.h
new file mode 100644 ===================================================================
index 000000000..79b1c0a54
--- /dev/null --- /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 @@ @@ -0,0 +1,38 @@
+/* +/*
+ * Copyright (C) 2024 SUSE LLC + * Copyright (C) 2024 SUSE LLC
@ -1076,10 +1074,10 @@ index 000000000..79b1c0a54
+ +
+gboolean meta_wayland_text_input_v1_handle_event (MetaWaylandTextInputV1 *text_input, +gboolean meta_wayland_text_input_v1_handle_event (MetaWaylandTextInputV1 *text_input,
+ const ClutterEvent *event); + const ClutterEvent *event);
diff --git a/src/wayland/meta-wayland-versions.h b/src/wayland/meta-wayland-versions.h Index: mutter-46.3/src/wayland/meta-wayland-versions.h
index 900f30d78..a77b81461 100644 ===================================================================
--- a/src/wayland/meta-wayland-versions.h --- mutter-46.3.orig/src/wayland/meta-wayland-versions.h
+++ b/src/wayland/meta-wayland-versions.h +++ mutter-46.3/src/wayland/meta-wayland-versions.h
@@ -49,6 +49,7 @@ @@ -49,6 +49,7 @@
#define META_ZXDG_OUTPUT_V1_VERSION 3 #define META_ZXDG_OUTPUT_V1_VERSION 3
#define META_ZWP_XWAYLAND_KEYBOARD_GRAB_V1_VERSION 1 #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_WP_VIEWPORTER_VERSION 1
#define META_ZWP_PRIMARY_SELECTION_V1_VERSION 1 #define META_ZWP_PRIMARY_SELECTION_V1_VERSION 1
#define META_WP_PRESENTATION_VERSION 1 #define META_WP_PRESENTATION_VERSION 1
diff --git a/src/wayland/meta-wayland.c b/src/wayland/meta-wayland.c Index: mutter-46.3/src/wayland/meta-wayland.c
index 501b69a91..0114823c1 100644 ===================================================================
--- a/src/wayland/meta-wayland.c --- mutter-46.3.orig/src/wayland/meta-wayland.c
+++ b/src/wayland/meta-wayland.c +++ mutter-46.3/src/wayland/meta-wayland.c
@@ -865,6 +865,7 @@ meta_wayland_compositor_new (MetaContext *context) @@ -865,6 +865,7 @@ meta_wayland_compositor_new (MetaContext
meta_wayland_keyboard_shortcuts_inhibit_init (compositor); meta_wayland_keyboard_shortcuts_inhibit_init (compositor);
meta_wayland_surface_inhibit_shortcuts_dialog_init (); meta_wayland_surface_inhibit_shortcuts_dialog_init ();
meta_wayland_text_input_init (compositor); meta_wayland_text_input_init (compositor);
@ -1100,7 +1098,7 @@ index 501b69a91..0114823c1 100644
meta_wayland_init_presentation_time (compositor); meta_wayland_init_presentation_time (compositor);
meta_wayland_activation_init (compositor); meta_wayland_activation_init (compositor);
meta_wayland_transaction_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; return compositor->seat->text_input;
} }
@ -1113,10 +1111,10 @@ index 501b69a91..0114823c1 100644
static void static void
meta_wayland_compositor_update_focus (MetaWaylandCompositor *compositor, meta_wayland_compositor_update_focus (MetaWaylandCompositor *compositor,
MetaWindow *window) MetaWindow *window)
diff --git a/src/wayland/meta-wayland.h b/src/wayland/meta-wayland.h Index: mutter-46.3/src/wayland/meta-wayland.h
index 0a0476eba..c23e82cdc 100644 ===================================================================
--- a/src/wayland/meta-wayland.h --- mutter-46.3.orig/src/wayland/meta-wayland.h
+++ b/src/wayland/meta-wayland.h +++ mutter-46.3/src/wayland/meta-wayland.h
@@ -26,6 +26,7 @@ @@ -26,6 +26,7 @@
#include "meta/types.h" #include "meta/types.h"
#include "meta/meta-wayland-compositor.h" #include "meta/meta-wayland-compositor.h"
@ -1125,7 +1123,7 @@ index 0a0476eba..c23e82cdc 100644
#include "wayland/meta-wayland-types.h" #include "wayland/meta-wayland-types.h"
META_EXPORT_TEST 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); MetaWindow *window);
MetaWaylandTextInput * meta_wayland_compositor_get_text_input (MetaWaylandCompositor *compositor); MetaWaylandTextInput * meta_wayland_compositor_get_text_input (MetaWaylandCompositor *compositor);
@ -1133,6 +1131,3 @@ index 0a0476eba..c23e82cdc 100644
#ifdef HAVE_XWAYLAND #ifdef HAVE_XWAYLAND
void meta_wayland_compositor_notify_surface_id (MetaWaylandCompositor *compositor, void meta_wayland_compositor_notify_surface_id (MetaWaylandCompositor *compositor,
--
2.45.0

View File

@ -13,11 +13,11 @@ by special-casing shaped Java windows.
src/x11/window-x11.c | 9 +++++++++ src/x11/window-x11.c | 9 +++++++++
3 files changed, 19 insertions(+) 3 files changed, 19 insertions(+)
diff --git a/src/compositor/meta-window-actor-x11.c b/src/compositor/meta-window-actor-x11.c Index: mutter-46.3/src/compositor/meta-window-actor-x11.c
index 19827af331..7d5e46ac75 100644 ===================================================================
--- a/src/compositor/meta-window-actor-x11.c --- mutter-46.3.orig/src/compositor/meta-window-actor-x11.c
+++ b/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_x11) @@ -424,6 +424,14 @@ has_shadow (MetaWindowActorX11 *actor_x1
*/ */
if (window->has_custom_frame_extents) if (window->has_custom_frame_extents)
return FALSE; return FALSE;
@ -32,11 +32,11 @@ index 19827af331..7d5e46ac75 100644
/* /*
* Generate shadows for all other windows. * Generate shadows for all other windows.
diff --git a/src/x11/window-x11-private.h b/src/x11/window-x11-private.h Index: mutter-46.3/src/x11/window-x11-private.h
index c947744ee5..cb862f0d72 100644 ===================================================================
--- a/src/x11/window-x11-private.h --- mutter-46.3.orig/src/x11/window-x11-private.h
+++ b/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 (MetaWindow *window); @@ -125,6 +125,8 @@ gboolean meta_window_x11_has_pointer (Me
gboolean meta_window_x11_same_application (MetaWindow *window, gboolean meta_window_x11_same_application (MetaWindow *window,
MetaWindow *other_window); MetaWindow *other_window);
@ -45,11 +45,11 @@ index c947744ee5..cb862f0d72 100644
void meta_window_x11_shutdown_group (MetaWindow *window); void meta_window_x11_shutdown_group (MetaWindow *window);
META_EXPORT META_EXPORT
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c Index: mutter-46.3/src/x11/window-x11.c
index 745c45db18..83cdd2e420 100644 ===================================================================
--- a/src/x11/window-x11.c --- mutter-46.3.orig/src/x11/window-x11.c
+++ b/src/x11/window-x11.c +++ mutter-46.3/src/x11/window-x11.c
@@ -2585,6 +2585,15 @@ meta_window_x11_update_shape_region (MetaWindow *window) @@ -2582,6 +2582,15 @@ meta_window_x11_update_shape_region (Met
meta_window_set_shape_region (window, region); 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 /* Generally meta_window_x11_same_application() is a better idea
* of "sameness", since it handles the case where multiple apps * of "sameness", since it handles the case where multiple apps
* want to look like the same app or the same app wants to look * want to look like the same app or the same app wants to look
--
2.43.2

View File

@ -1,3 +1,22 @@
-------------------------------------------------------------------
Sun Jun 30 08:50:32 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
- 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 <dimstar@opensuse.org> Mon May 27 07:13:01 UTC 2024 - Dominique Leuenberger <dimstar@opensuse.org>

View File

@ -1,4 +1,4 @@
name: mutter name: mutter
version: 46.2 version: 46.3
mtime: 1716654802 mtime: 1719689543
commit: 02050414855b370dbf2b08a971c8b332f7b3c9f4 commit: 3998f8a422e89c6a64a79e2ce23f9389c0feb7f9

View File

@ -22,7 +22,7 @@
%define api_minor 0 %define api_minor 0
%define libmutter libmutter-%{api_major}-%{api_minor} %define libmutter libmutter-%{api_major}-%{api_minor}
Name: mutter Name: mutter
Version: 46.2 Version: 46.3
Release: 0 Release: 0
Summary: Window and compositing manager based on Clutter Summary: Window and compositing manager based on Clutter
License: GPL-2.0-or-later License: GPL-2.0-or-later