From 7bfc472ad3e5fd0b667ec44e748ade08604a7d79 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 29 Oct 2021 12:29:51 +0200 Subject: [PATCH] clutter: Add specific event flag to tag "grab notify" crossing events These events may need some differentiation or special handling, so add this event flag and set it in the relevant events. Part-of: --- clutter/clutter/clutter-enums.h | 1 + clutter/clutter/clutter-stage.c | 6 +++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/clutter/clutter/clutter-enums.h b/clutter/clutter/clutter-enums.h index 9177f1095..9ee55fb5c 100644 --- a/clutter/clutter/clutter-enums.h +++ b/clutter/clutter/clutter-enums.h @@ -804,6 +804,7 @@ typedef enum /*< flags prefix=CLUTTER_EVENT >*/ CLUTTER_EVENT_FLAG_INPUT_METHOD = 1 << 1, CLUTTER_EVENT_FLAG_REPEATED = 1 << 2, CLUTTER_EVENT_FLAG_RELATIVE_MOTION = 1 << 3, + CLUTTER_EVENT_FLAG_GRAB_NOTIFY = 1 << 4, } ClutterEventFlags; /** diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index 449f61676..3ef7ba69e 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -3496,6 +3496,7 @@ create_crossing_event (ClutterStage *stage, ClutterInputDevice *device, ClutterEventSequence *sequence, ClutterEventType event_type, + ClutterEventFlags flags, ClutterActor *source, ClutterActor *related, graphene_point_t coords, @@ -3505,7 +3506,7 @@ create_crossing_event (ClutterStage *stage, event = clutter_event_new (event_type); event->crossing.time = time_ms; - event->crossing.flags = 0; + event->crossing.flags = flags; event->crossing.stage = stage; event->crossing.source = source; event->crossing.x = coords.x; @@ -3583,6 +3584,7 @@ clutter_stage_update_device (ClutterStage *stage, event = create_crossing_event (stage, device, sequence, CLUTTER_LEAVE, + CLUTTER_EVENT_NONE, old_actor, new_actor, point, time_ms); if (!_clutter_event_process_filters (event)) @@ -3596,6 +3598,7 @@ clutter_stage_update_device (ClutterStage *stage, event = create_crossing_event (stage, device, sequence, CLUTTER_ENTER, + CLUTTER_EVENT_NONE, new_actor, old_actor, point, time_ms); if (!_clutter_event_process_filters (event)) @@ -3776,6 +3779,7 @@ clutter_stage_notify_grab_on_pointer_entry (ClutterStage *stage, entry->device, entry->sequence, event_type, + CLUTTER_EVENT_FLAG_GRAB_NOTIFY, entry->current_actor, event_type == CLUTTER_LEAVE ? grab_actor : old_grab_actor,