From ecf6ea69503498b35d17c8178f39f4cf7e72cb2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Fri, 11 Aug 2023 02:41:03 +0200 Subject: [PATCH] Update to 45.beta.1 --- .gitignore | 1 + 3162.patch | 57 --------- 3163.patch | 346 ---------------------------------------------------- 3168.patch | 51 -------- mutter.spec | 16 +-- sources | 2 +- 6 files changed, 3 insertions(+), 470 deletions(-) delete mode 100644 3162.patch delete mode 100644 3163.patch delete mode 100644 3168.patch diff --git a/.gitignore b/.gitignore index ab729d9..5029ba2 100644 --- a/.gitignore +++ b/.gitignore @@ -210,3 +210,4 @@ mutter-2.31.5.tar.bz2 /mutter-44.2.tar.xz /mutter-45.alpha.tar.xz /mutter-45.beta.tar.xz +/mutter-45.beta.1.tar.xz diff --git a/3162.patch b/3162.patch deleted file mode 100644 index dd3a90f..0000000 --- a/3162.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 69ce2cc5cf1f4759afea7fd3429c9f33b6d07919 Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Tue, 8 Aug 2023 16:04:25 +0200 -Subject: [PATCH] backends/native: Fix handling order of key event - -First create the event with the current xkb modifier mask, then -update the xkb_state and the modifier mask. This is how it happened -before commit 2e8d8397081, and how it should stay. - -Fixes: 2e8d8397081 ("backends/native: Port to new event constructors") - -Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2951 ---- - src/backends/native/meta-seat-impl.c | 20 ++++++++++---------- - 1 file changed, 10 insertions(+), 10 deletions(-) - -diff --git a/src/backends/native/meta-seat-impl.c b/src/backends/native/meta-seat-impl.c -index 0c26647b43..77eb4faac6 100644 ---- a/src/backends/native/meta-seat-impl.c -+++ b/src/backends/native/meta-seat-impl.c -@@ -415,16 +415,6 @@ meta_seat_impl_notify_key_in_impl (MetaSeatImpl *seat_impl, - return; - } - } -- -- keycode = meta_xkb_evdev_to_keycode (key); -- -- /* We must be careful and not pass multiple releases to xkb, otherwise it gets -- confused and locks the modifiers */ -- if (state != AUTOREPEAT_VALUE) -- { -- changed_state = xkb_state_update_key (seat_impl->xkb, keycode, -- state ? XKB_KEY_DOWN : XKB_KEY_UP); -- } - else - { - changed_state = 0; -@@ -438,6 +428,16 @@ meta_seat_impl_notify_key_in_impl (MetaSeatImpl *seat_impl, - seat_impl->button_state, - time_us, key, state); - -+ keycode = meta_xkb_evdev_to_keycode (key); -+ -+ /* We must be careful and not pass multiple releases to xkb, otherwise it gets -+ confused and locks the modifiers */ -+ if (state != AUTOREPEAT_VALUE) -+ { -+ changed_state = xkb_state_update_key (seat_impl->xkb, keycode, -+ state ? XKB_KEY_DOWN : XKB_KEY_UP); -+ } -+ - if (!meta_input_device_native_process_kbd_a11y_event_in_impl (seat_impl->core_keyboard, - event)) - queue_event (seat_impl, event); --- -GitLab - diff --git a/3163.patch b/3163.patch deleted file mode 100644 index 21a4ce7..0000000 --- a/3163.patch +++ /dev/null @@ -1,346 +0,0 @@ -From 1d6d8d45d0991cc72fe386ab9552b08cc039e7fb Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Wed, 9 Aug 2023 00:23:28 +0200 -Subject: [PATCH] clutter: Update ClutterActorClass event vmethods to use - ClutterEvent - -With the ClutterEvent subtype structs sealed, this remains the only useful -struct type that is now usable on the Javascript side. Make all -ClutterActorClass event vmethods use ClutterEvent, and update all users -to this change. - -Part-of: ---- - clutter/clutter/clutter-actor.c | 16 +++--- - clutter/clutter/clutter-actor.h | 18 +++---- - clutter/clutter/clutter-binding-pool.c | 4 +- - clutter/clutter/clutter-gesture-action.c | 4 +- - clutter/clutter/clutter-text.c | 52 +++++++++---------- - src/tests/clutter/conform/binding-pool.c | 8 +-- - .../clutter/interactive/test-binding-pool.c | 8 +-- - 7 files changed, 54 insertions(+), 56 deletions(-) - -diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c -index 017b859e4f..99b42cfe9d 100644 ---- a/clutter/clutter/clutter-actor.c -+++ b/clutter/clutter/clutter-actor.c -@@ -6963,7 +6963,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::button-press-event: - * @actor: the actor which received the event -- * @event: (type ClutterButtonEvent): a #ClutterButtonEvent -+ * @event: (type ClutterEvent): a button [struct@Event] - * - * The signal is emitted each time a mouse button - * is pressed on @actor. -@@ -6986,7 +6986,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::button-release-event: - * @actor: the actor which received the event -- * @event: (type ClutterButtonEvent): a #ClutterButtonEvent -+ * @event: (type ClutterEvent): a button [struct@Event] - * - * The signal is emitted each time a mouse button - * is released on @actor. -@@ -7009,7 +7009,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::scroll-event: - * @actor: the actor which received the event -- * @event: (type ClutterScrollEvent): a #ClutterScrollEvent -+ * @event: (type ClutterEvent): a scroll [struct@Event] - * - * The signal is emitted each time the mouse is - * scrolled on @actor -@@ -7032,7 +7032,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::key-press-event: - * @actor: the actor which received the event -- * @event: (type ClutterKeyEvent): a #ClutterKeyEvent -+ * @event: (type ClutterEvent): a key [struct@Event] - * - * The signal is emitted each time a keyboard button - * is pressed while @actor has key focus (see clutter_stage_set_key_focus()). -@@ -7055,7 +7055,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::key-release-event: - * @actor: the actor which received the event -- * @event: (type ClutterKeyEvent): a #ClutterKeyEvent -+ * @event: (type ClutterEvent): a key [struct@Event] - * - * The signal is emitted each time a keyboard button - * is released while @actor has key focus (see -@@ -7079,7 +7079,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::motion-event: - * @actor: the actor which received the event -- * @event: (type ClutterMotionEvent): a #ClutterMotionEvent -+ * @event: (type ClutterEvent): a motion [struct@Event] - * - * The signal is emitted each time the mouse pointer is - * moved over @actor. -@@ -7131,7 +7131,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::enter-event: - * @actor: the actor which the pointer has entered. -- * @event: (type ClutterCrossingEvent): a #ClutterCrossingEvent -+ * @event: (type ClutterEvent): a crossing [struct@Event] - * - * The signal is emitted when the pointer enters the @actor - * -@@ -7154,7 +7154,7 @@ clutter_actor_class_init (ClutterActorClass *klass) - /** - * ClutterActor::leave-event: - * @actor: the actor which the pointer has left -- * @event: (type ClutterCrossingEvent): a #ClutterCrossingEvent -+ * @event: (type ClutterEvent): a crossing [struct@Event] - * - * The signal is emitted when the pointer leaves the @actor. - * -diff --git a/clutter/clutter/clutter-actor.h b/clutter/clutter/clutter-actor.h -index 46298c74fb..9c0dc82c54 100644 ---- a/clutter/clutter/clutter-actor.h -+++ b/clutter/clutter/clutter-actor.h -@@ -236,21 +236,21 @@ struct _ClutterActorClass - gboolean (* event) (ClutterActor *actor, - ClutterEvent *event); - gboolean (* button_press_event) (ClutterActor *actor, -- ClutterButtonEvent *event); -+ ClutterEvent *event); - gboolean (* button_release_event) (ClutterActor *actor, -- ClutterButtonEvent *event); -+ ClutterEvent *event); - gboolean (* scroll_event) (ClutterActor *actor, -- ClutterScrollEvent *event); -+ ClutterEvent *event); - gboolean (* key_press_event) (ClutterActor *actor, -- ClutterKeyEvent *event); -+ ClutterEvent *event); - gboolean (* key_release_event) (ClutterActor *actor, -- ClutterKeyEvent *event); -+ ClutterEvent *event); - gboolean (* motion_event) (ClutterActor *actor, -- ClutterMotionEvent *event); -+ ClutterEvent *event); - gboolean (* enter_event) (ClutterActor *actor, -- ClutterCrossingEvent *event); -+ ClutterEvent *event); - gboolean (* leave_event) (ClutterActor *actor, -- ClutterCrossingEvent *event); -+ ClutterEvent *event); - gboolean (* captured_event) (ClutterActor *actor, - ClutterEvent *event); - void (* key_focus_in) (ClutterActor *actor); -@@ -270,7 +270,7 @@ struct _ClutterActorClass - ClutterPaintNode *root); - - gboolean (* touch_event) (ClutterActor *self, -- ClutterTouchEvent *event); -+ ClutterEvent *event); - gboolean (* has_accessible) (ClutterActor *self); - void (* resource_scale_changed) (ClutterActor *self); - float (* calculate_resource_scale) (ClutterActor *self, -diff --git a/clutter/clutter/clutter-binding-pool.c b/clutter/clutter/clutter-binding-pool.c -index a01b5edde0..2a1e529e86 100644 ---- a/clutter/clutter/clutter-binding-pool.c -+++ b/clutter/clutter/clutter-binding-pool.c -@@ -69,8 +69,8 @@ - * ``` - * - * The actor should then override the [signal@Actor::key-press-event] and -- * use [method@BindingPool.activate] to match a [struct@KeyEvent] structure -- * to one of the actions: -+ * use [method@BindingPool.activate] to match a [struct@Event] key event -+ * structure to one of the actions: - * - * ```c - * ClutterBindingPool *pool; -diff --git a/clutter/clutter/clutter-gesture-action.c b/clutter/clutter/clutter-gesture-action.c -index b562279f5f..35e401a156 100644 ---- a/clutter/clutter/clutter-gesture-action.c -+++ b/clutter/clutter/clutter-gesture-action.c -@@ -30,8 +30,8 @@ - * Action for gesture gestures - * - * #ClutterGestureAction is a sub-class of [class@Action] that implements -- * the logic for recognizing gesture gestures. It listens for low level events -- * such as [struct@ButtonEvent] and [struct@MotionEvent] on the stage to raise -+ * the logic for recognizing gesture gestures. It listens for low level -+ * [struct@Event] events on the stage to raise - * the [signal@GestureAction::gesture-begin], [signal@GestureAction::gesture-progress], - * and [signal@GestureAction::gesture-end] signals. - * -diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c -index 2b6a8716f6..9f0f17c31c 100644 ---- a/clutter/clutter/clutter-text.c -+++ b/clutter/clutter/clutter-text.c -@@ -2365,42 +2365,42 @@ clutter_text_release (ClutterActor *actor, - } - - static gboolean --clutter_text_button_press (ClutterActor *actor, -- ClutterButtonEvent *event) -+clutter_text_button_press (ClutterActor *actor, -+ ClutterEvent *event) - { -- return clutter_text_press (actor, (ClutterEvent *) event); -+ return clutter_text_press (actor, event); - } - - static gboolean --clutter_text_motion (ClutterActor *actor, -- ClutterMotionEvent *event) -+clutter_text_motion (ClutterActor *actor, -+ ClutterEvent *event) - { -- return clutter_text_move (actor, (ClutterEvent *) event); -+ return clutter_text_move (actor, event); - } - - static gboolean --clutter_text_button_release (ClutterActor *actor, -- ClutterButtonEvent *event) -+clutter_text_button_release (ClutterActor *actor, -+ ClutterEvent *event) - { -- return clutter_text_release (actor, (ClutterEvent *) event); -+ return clutter_text_release (actor, event); - } - - static gboolean --clutter_text_touch_event (ClutterActor *actor, -- ClutterTouchEvent *event) -+clutter_text_touch_event (ClutterActor *actor, -+ ClutterEvent *event) - { -- switch (clutter_event_type ((ClutterEvent *) event)) -+ switch (clutter_event_type (event)) - { - case CLUTTER_TOUCH_BEGIN: -- return clutter_text_press (actor, (ClutterEvent *) event); -+ return clutter_text_press (actor, event); - - case CLUTTER_TOUCH_END: - case CLUTTER_TOUCH_CANCEL: - /* TODO: the cancel case probably need a special handler */ -- return clutter_text_release (actor, (ClutterEvent *) event); -+ return clutter_text_release (actor, event); - - case CLUTTER_TOUCH_UPDATE: -- return clutter_text_move (actor, (ClutterEvent *) event); -+ return clutter_text_move (actor, event); - - default: - break; -@@ -2424,8 +2424,8 @@ clutter_text_remove_password_hint (gpointer data) - } - - static gboolean --clutter_text_key_press (ClutterActor *actor, -- ClutterKeyEvent *event) -+clutter_text_key_press (ClutterActor *actor, -+ ClutterEvent *event) - { - ClutterText *self = CLUTTER_TEXT (actor); - ClutterTextPrivate *priv = self->priv; -@@ -2445,14 +2445,13 @@ clutter_text_key_press (ClutterActor *actor, - pool = clutter_binding_pool_find (g_type_name (CLUTTER_TYPE_TEXT)); - g_assert (pool != NULL); - -- flags = clutter_event_get_flags ((ClutterEvent *) event); -- keyval = clutter_event_get_key_symbol ((ClutterEvent *) event); -- modifiers = clutter_event_get_state ((ClutterEvent *) event); -+ flags = clutter_event_get_flags (event); -+ keyval = clutter_event_get_key_symbol (event); -+ modifiers = clutter_event_get_state (event); - - if (!(flags & CLUTTER_EVENT_FLAG_INPUT_METHOD) && - clutter_input_focus_is_focused (priv->input_focus) && -- clutter_input_focus_filter_event (priv->input_focus, -- (ClutterEvent *) event)) -+ clutter_input_focus_filter_event (priv->input_focus, event)) - return CLUTTER_EVENT_STOP; - - /* we allow passing synthetic events that only contain -@@ -2479,7 +2478,7 @@ clutter_text_key_press (ClutterActor *actor, - gunichar key_unichar; - - /* Skip keys when control is pressed */ -- key_unichar = clutter_event_get_key_unicode ((ClutterEvent *) event); -+ key_unichar = clutter_event_get_key_unicode (event); - - /* return is reported as CR, but we want LF */ - if (key_unichar == '\r') -@@ -2514,15 +2513,14 @@ clutter_text_key_press (ClutterActor *actor, - } - - static gboolean --clutter_text_key_release (ClutterActor *actor, -- ClutterKeyEvent *event) -+clutter_text_key_release (ClutterActor *actor, -+ ClutterEvent *event) - { - ClutterText *self = CLUTTER_TEXT (actor); - ClutterTextPrivate *priv = self->priv; - - if (clutter_input_focus_is_focused (priv->input_focus) && -- clutter_input_focus_filter_event (priv->input_focus, -- (ClutterEvent *) event)) -+ clutter_input_focus_filter_event (priv->input_focus, event)) - return CLUTTER_EVENT_STOP; - - return CLUTTER_EVENT_PROPAGATE; -diff --git a/src/tests/clutter/conform/binding-pool.c b/src/tests/clutter/conform/binding-pool.c -index 7b1c04308f..9c355d0c5e 100644 ---- a/src/tests/clutter/conform/binding-pool.c -+++ b/src/tests/clutter/conform/binding-pool.c -@@ -110,8 +110,8 @@ key_group_action_activate (KeyGroup *self, - } - - static gboolean --key_group_key_press (ClutterActor *actor, -- ClutterKeyEvent *event) -+key_group_key_press (ClutterActor *actor, -+ ClutterEvent *event) - { - ClutterBindingPool *pool; - gboolean res; -@@ -120,8 +120,8 @@ key_group_key_press (ClutterActor *actor, - g_assert (pool != NULL); - - res = clutter_binding_pool_activate (pool, -- clutter_event_get_key_symbol ((ClutterEvent *) event), -- clutter_event_get_state ((ClutterEvent *) event), -+ clutter_event_get_key_symbol (event), -+ clutter_event_get_state (event), - G_OBJECT (actor)); - - /* if we activate a key binding, redraw the actor */ -diff --git a/src/tests/clutter/interactive/test-binding-pool.c b/src/tests/clutter/interactive/test-binding-pool.c -index eec56b86a3..29ca46e126 100644 ---- a/src/tests/clutter/interactive/test-binding-pool.c -+++ b/src/tests/clutter/interactive/test-binding-pool.c -@@ -130,8 +130,8 @@ key_group_action_activate (KeyGroup *self, - } - - static gboolean --key_group_key_press (ClutterActor *actor, -- ClutterKeyEvent *event) -+key_group_key_press (ClutterActor *actor, -+ ClutterEvent *event) - { - ClutterBindingPool *pool; - gboolean res; -@@ -140,8 +140,8 @@ key_group_key_press (ClutterActor *actor, - g_assert (pool != NULL); - - res = clutter_binding_pool_activate (pool, -- clutter_event_get_key_symbol ((ClutterEvent *) event), -- clutter_event_get_state ((ClutterEvent *) event), -+ clutter_event_get_key_symbol (event), -+ clutter_event_get_state (event), - G_OBJECT (actor)); - - /* if we activate a key binding, redraw the actor */ --- -GitLab - diff --git a/3168.patch b/3168.patch deleted file mode 100644 index 03d5f4d..0000000 --- a/3168.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 44fc67626b6dbaee79c49fd87b20c42405d9decc Mon Sep 17 00:00:00 2001 -From: Carlos Garnacho -Date: Wed, 9 Aug 2023 16:00:49 +0200 -Subject: [PATCH] clutter: Trigger repick on animation-less transform changes - -We have a mechanism to trigger repick after animations on -clutter_actor_set_final_state(), but this will not happen if -animations are disabled. - -In this case, shell transitions and other typically animatable -changes on the transform of actors will not naturally trigger -a pointer repick when those get instantly changed to the final -state, possibly preserving the cached state and missing the -just popped in actor altogether. - -Trigger an instant repick on animation-less transform changes, -so that these situations are also handled correctly, and the -pointer drops the cached state and is able to find the new -actor. - -Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2918 ---- - clutter/clutter/clutter-actor.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c -index 99b42cfe9d..8495e06f79 100644 ---- a/clutter/clutter/clutter-actor.c -+++ b/clutter/clutter/clutter-actor.c -@@ -1004,6 +1004,8 @@ static void push_in_paint_unmapped_branch (ClutterActor *self, - static void pop_in_paint_unmapped_branch (ClutterActor *self, - guint count); - -+static void clutter_actor_update_pointer (ClutterActor *self); -+ - static GQuark quark_actor_layout_info = 0; - static GQuark quark_actor_transform_info = 0; - static GQuark quark_actor_animation_info = 0; -@@ -2447,6 +2449,9 @@ transform_changed (ClutterActor *actor) - absolute_geometry_changed_cb, - NULL, - NULL); -+ -+ if (!clutter_actor_has_transitions (actor)) -+ clutter_actor_update_pointer (actor); - } - - /*< private > --- -GitLab - diff --git a/mutter.spec b/mutter.spec index 9db93a1..988fa64 100644 --- a/mutter.spec +++ b/mutter.spec @@ -13,7 +13,7 @@ %global tarball_version %%(echo %{version} | tr '~' '.') Name: mutter -Version: 45~beta +Version: 45~beta.1 Release: %autorelease Summary: Window and compositing manager based on Clutter @@ -30,20 +30,6 @@ Patch1: mutter-42.alpha-disable-tegra.patch # https://pagure.io/fedora-workstation/issue/79 Patch2: 0001-place-Always-center-initial-setup-fedora-welcome.patch -# fix super key no longer triggering overview -# https://gitlab.gnome.org/GNOME/mutter/-/issues/2951 -# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3162 -Patch3: 3162.patch - -# Fix mouse clicks sometimes not working -# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3168 -Patch4: 3168.patch - -# Needed to fix broken alt-tab (along with gnome-shell patches) -# https://gitlab.gnome.org/GNOME/mutter/-/issues/2950 -# https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3163 -Patch5: 3163.patch - BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.41.0 BuildRequires: pkgconfig(sm) BuildRequires: pkgconfig(libwacom) diff --git a/sources b/sources index 3267a57..f26b924 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mutter-45.beta.tar.xz) = ad6936492ddcd40f28e906483e7ee03cf3eb1505e5496770e5e564b6d381ee6bf8d90b3333b106e91d08456697ba83cb3370789634d83442f897004891d5712a +SHA512 (mutter-45.beta.1.tar.xz) = 4083952406dc4c6f84da6641ab84072b889fc775cd7ff3146297f3d22ae298b2283ebb683a94b49259c748220f1a00292b460f20f64c2de36896659591c49039