[mutter/wip/carlosg/unthrottled-wayland] clutter: Trigger pointer repick after animatable property changes
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/unthrottled-wayland] clutter: Trigger pointer repick after animatable property changes
- Date: Fri, 3 Sep 2021 21:35:24 +0000 (UTC)
commit 1cf6721e0653d5807cf92868a3f444aa1f5ccf91
Author: Carlos Garnacho <carlosg gnome org>
Date: Fri Sep 3 23:26:52 2021 +0200
clutter: Trigger pointer repick after animatable property changes
This is notably necessary with transformations, since these don't
trigger allocation machinery, but may affect the actor under the
pointer.
Visible e.g. with GNOME Shell's "Application does not respond"
dialogs.
clutter/clutter/clutter-actor.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
---
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index e7c84be108..56bf8fe47b 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -13251,6 +13251,22 @@ clutter_actor_set_animatable_property (ClutterActor *actor,
g_object_thaw_notify (obj);
}
+static void
+clutter_actor_update_pointer (ClutterActor *self)
+{
+ ClutterInputDevice *pointer;
+ ClutterStage *stage;
+ ClutterSeat *seat;
+
+ stage = CLUTTER_STAGE (_clutter_actor_get_stage_internal (self));
+ if (!stage)
+ return;
+
+ seat = clutter_backend_get_default_seat (clutter_get_default_backend ());
+ pointer = clutter_seat_get_pointer (seat);
+ clutter_stage_repick_device (stage, pointer);
+}
+
static void
clutter_actor_set_final_state (ClutterAnimatable *animatable,
const gchar *property_name,
@@ -13301,6 +13317,8 @@ clutter_actor_set_final_state (ClutterAnimatable *animatable,
}
}
+ clutter_actor_update_pointer (actor);
+
g_free (p_name);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]