[mutter/wip/carlosg/crossings: 2/9] clutter/main: Change picked actor before emitting crossing events
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/crossings: 2/9] clutter/main: Change picked actor before emitting crossing events
- Date: Tue, 22 Dec 2020 17:27:52 +0000 (UTC)
commit 62e8481c49c519dd5613ff65d79eca99bb508d7c
Author: Carlos Garnacho <carlosg gnome org>
Date: Tue Dec 22 17:25:48 2020 +0100
clutter/main: Change picked actor before emitting crossing events
Updating the state before emitting the CLUTTER_LEAVE event allows its
handlers to query the pointer actor, and avoid getting the same actor
again. Conceptually, this makes picking more "atomic", and the events a
notification of the change.
clutter/clutter/clutter-main.c | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
---
diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c
index 2b57079cc5..1ce5320125 100644
--- a/clutter/clutter/clutter-main.c
+++ b/clutter/clutter/clutter-main.c
@@ -1608,6 +1608,11 @@ clutter_stage_update_device (ClutterStage *stage,
old_actor = clutter_stage_get_device_actor (stage, device, sequence);
device_actor_changed = new_actor != old_actor;
+ clutter_stage_update_device_entry (stage,
+ device, sequence,
+ point,
+ new_actor);
+
if (device_actor_changed)
{
CLUTTER_NOTE (EVENT,
@@ -1625,15 +1630,7 @@ clutter_stage_update_device (ClutterStage *stage,
old_actor, new_actor,
point, time);
}
- }
- clutter_stage_update_device_entry (stage,
- device, sequence,
- point,
- new_actor);
-
- if (device_actor_changed)
- {
if (new_actor && emit_crossing)
{
create_crossing_event (stage,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]