From 5dd818cf1a83165e20e5aa0318d8410e044f1972 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 25 Feb 2022 13:06:20 +0100 Subject: [PATCH] tests: Move away from clutter_event_get_source() The target actor as seen by the stage is equivalent, so use that. Part-of: --- src/tests/clutter/interactive/test-events.c | 14 +++++++++++++- src/tests/clutter/interactive/test-grab.c | 18 ++++++++++++++---- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/src/tests/clutter/interactive/test-events.c b/src/tests/clutter/interactive/test-events.c index 6d741f944..7f9a776f3 100644 --- a/src/tests/clutter/interactive/test-events.c +++ b/src/tests/clutter/interactive/test-events.c @@ -185,7 +185,7 @@ input_cb (ClutterActor *actor, gpointer data) { ClutterActor *stage = clutter_actor_get_stage (actor); - ClutterActor *source_actor = clutter_event_get_source (event); + ClutterActor *source_actor; graphene_point_t position; gchar *state; gchar keybuf[128]; @@ -195,6 +195,18 @@ input_cb (ClutterActor *actor, device = clutter_event_get_device (event); device_name = clutter_input_device_get_device_name (device); + if (event->type == CLUTTER_KEY_PRESS || + event->type == CLUTTER_KEY_RELEASE) + { + source_actor = clutter_stage_get_key_focus (CLUTTER_STAGE (stage)); + } + else + { + source_actor = clutter_stage_get_device_actor (CLUTTER_STAGE (stage), + device, + clutter_event_get_event_sequence (event)); + } + source = clutter_event_get_source_device (event); if (source) source_name = clutter_input_device_get_device_name (source); diff --git a/src/tests/clutter/interactive/test-grab.c b/src/tests/clutter/interactive/test-grab.c index 0fb2989cd..6e7eda2fc 100644 --- a/src/tests/clutter/interactive/test-grab.c +++ b/src/tests/clutter/interactive/test-grab.c @@ -15,6 +15,7 @@ debug_event_cb (ClutterActor *actor, gpointer data) { gchar keybuf[9], *source = (gchar*)data; + ClutterActor *target; int len = 0; switch (event->type) @@ -93,9 +94,12 @@ debug_event_cb (ClutterActor *actor, return FALSE; } - if (clutter_event_get_source (event) == actor) - printf(" *source*"); - + target = clutter_stage_get_device_actor (clutter_event_get_stage (event), + clutter_event_get_device (event), + clutter_event_get_event_sequence (event)); + if (target == actor) + printf(" *target*"); + printf("\n"); return FALSE; @@ -142,8 +146,14 @@ toggle_grab_pointer_cb (ClutterActor *actor, ClutterEvent *event, gpointer data) { + ClutterActor *target; + /* we only deal with the event if the source is ourself */ - if (event->button.source == actor) + target = clutter_stage_get_device_actor (clutter_event_get_stage (event), + clutter_event_get_device (event), + clutter_event_get_event_sequence (event)); + + if (target == actor) { ClutterStage *stage = CLUTTER_STAGE (clutter_actor_get_stage (actor)); ClutterGrab *grab;