From 440c249031e45cd0c75f8c21d08bf4de6913c03d Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 4 Aug 2023 12:28:04 +0200 Subject: [PATCH] clutter: Use ClutterEvent getter methods Part-of: --- clutter/clutter/clutter-actor.c | 7 +++- clutter/clutter/clutter-input-focus.c | 42 +++++++++++++------- clutter/clutter/clutter-input-pointer-a11y.c | 15 ++++--- clutter/clutter/clutter-main.c | 41 +++++++++++-------- clutter/clutter/clutter-seat.c | 2 +- clutter/clutter/clutter-stage.c | 42 ++++++++++++-------- clutter/clutter/clutter-text.c | 30 +++++++++----- 7 files changed, 112 insertions(+), 67 deletions(-) diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c index b2d748f7d..017b859e4 100644 --- a/clutter/clutter/clutter-actor.c +++ b/clutter/clutter/clutter-actor.c @@ -11667,13 +11667,16 @@ clutter_actor_event (ClutterActor *actor, gboolean retval = FALSE; gint signal_num = -1; GQuark detail = 0; + ClutterEventType event_type; g_return_val_if_fail (CLUTTER_IS_ACTOR (actor), FALSE); g_return_val_if_fail (event != NULL, FALSE); g_object_ref (actor); - switch (event->type) + event_type = clutter_event_type (event); + + switch (event_type) { case CLUTTER_NOTHING: break; @@ -11758,7 +11761,7 @@ clutter_actor_event (ClutterActor *actor, g_object_unref (actor); - if (event->type == CLUTTER_ENTER || event->type == CLUTTER_LEAVE) + if (event_type == CLUTTER_ENTER || event_type == CLUTTER_LEAVE) { g_warn_if_fail (retval == CLUTTER_EVENT_PROPAGATE); return CLUTTER_EVENT_PROPAGATE; diff --git a/clutter/clutter/clutter-input-focus.c b/clutter/clutter/clutter-input-focus.c index c2353cad8..6a5c4638a 100644 --- a/clutter/clutter/clutter-input-focus.c +++ b/clutter/clutter/clutter-input-focus.c @@ -179,16 +179,19 @@ clutter_input_focus_filter_event (ClutterInputFocus *focus, const ClutterEvent *event) { ClutterInputFocusPrivate *priv; + ClutterEventType event_type; g_return_val_if_fail (CLUTTER_IS_INPUT_FOCUS (focus), FALSE); g_return_val_if_fail (clutter_input_focus_is_focused (focus), FALSE); priv = clutter_input_focus_get_instance_private (focus); - if (event->type == CLUTTER_KEY_PRESS || - event->type == CLUTTER_KEY_RELEASE) + event_type = clutter_event_type (event); + + if (event_type == CLUTTER_KEY_PRESS || + event_type == CLUTTER_KEY_RELEASE) { - return clutter_input_method_filter_key_event (priv->im, &event->key); + return clutter_input_method_filter_key_event (priv->im, (ClutterKeyEvent *) event); } return FALSE; @@ -199,31 +202,42 @@ clutter_input_focus_process_event (ClutterInputFocus *focus, const ClutterEvent *event) { ClutterInputFocusPrivate *priv; + ClutterEventType event_type; g_return_val_if_fail (CLUTTER_IS_INPUT_FOCUS (focus), FALSE); g_return_val_if_fail (clutter_input_focus_is_focused (focus), FALSE); priv = clutter_input_focus_get_instance_private (focus); - if (event->type == CLUTTER_IM_COMMIT) + event_type = clutter_event_type (event); + + if (event_type == CLUTTER_IM_COMMIT) { - clutter_input_focus_commit (focus, event->im.text); + clutter_input_focus_commit (focus, + clutter_event_get_im_text (event)); return TRUE; } - else if (event->type == CLUTTER_IM_DELETE) + else if (event_type == CLUTTER_IM_DELETE) { - clutter_input_focus_delete_surrounding (focus, event->im.offset, - event->im.len); + int32_t offset; + uint32_t len; + + clutter_event_get_im_location (event, &offset, NULL); + len = clutter_event_get_im_delete_length (event); + clutter_input_focus_delete_surrounding (focus, offset, len); return TRUE; } - else if (event->type == CLUTTER_IM_PREEDIT) + else if (event_type == CLUTTER_IM_PREEDIT) { + int32_t offset, anchor; + g_clear_pointer (&priv->preedit, g_free); - priv->preedit = g_strdup (event->im.text); - priv->mode = event->im.mode; - clutter_input_focus_set_preedit_text (focus, event->im.text, - event->im.offset, - event->im.anchor); + priv->preedit = g_strdup (clutter_event_get_im_text (event)); + priv->mode = clutter_event_get_im_preedit_reset_mode (event); + clutter_event_get_im_location (event, &offset, &anchor); + clutter_input_focus_set_preedit_text (focus, + priv->preedit, + offset, anchor); return TRUE; } diff --git a/clutter/clutter/clutter-input-pointer-a11y.c b/clutter/clutter/clutter-input-pointer-a11y.c index fe1933d3b..76cd6cabb 100644 --- a/clutter/clutter/clutter-input-pointer-a11y.c +++ b/clutter/clutter/clutter-input-pointer-a11y.c @@ -736,13 +736,14 @@ clutter_input_pointer_a11y_update (ClutterInputDevice *device, ClutterMainContext *clutter_context; ClutterBackend *backend; + ClutterEventType event_type; g_return_if_fail (clutter_event_get_device (event) == device); if (!_clutter_is_input_pointer_a11y_enabled (device)) return; - if ((event->any.flags & CLUTTER_EVENT_FLAG_SYNTHETIC) != 0) + if ((clutter_event_get_flags (event) & CLUTTER_EVENT_FLAG_SYNTHETIC) != 0) return; clutter_context = _clutter_context_get_default (); @@ -751,18 +752,20 @@ clutter_input_pointer_a11y_update (ClutterInputDevice *device, if (!clutter_backend_is_display_server (backend)) return; - if (event->type == CLUTTER_MOTION) + event_type = clutter_event_type (event); + + if (event_type == CLUTTER_MOTION) { float x, y; clutter_event_get_coords (event, &x, &y); _clutter_input_pointer_a11y_on_motion_event (device, x, y); } - else if (event->type == CLUTTER_BUTTON_PRESS || - event->type == CLUTTER_BUTTON_RELEASE) + else if (event_type == CLUTTER_BUTTON_PRESS || + event_type == CLUTTER_BUTTON_RELEASE) { _clutter_input_pointer_a11y_on_button_event (device, - event->button.button, - event->type == CLUTTER_BUTTON_PRESS); + clutter_event_get_button (event), + event_type == CLUTTER_BUTTON_PRESS); } } diff --git a/clutter/clutter/clutter-main.c b/clutter/clutter/clutter-main.c index 193b9096d..83cdcd2a5 100644 --- a/clutter/clutter/clutter-main.c +++ b/clutter/clutter/clutter-main.c @@ -685,8 +685,12 @@ static inline void emit_event (ClutterStage *stage, ClutterEvent *event) { - if (event->type == CLUTTER_KEY_PRESS || - event->type == CLUTTER_KEY_RELEASE) + ClutterEventType event_type; + + event_type = clutter_event_type (event); + + if (event_type == CLUTTER_KEY_PRESS || + event_type == CLUTTER_KEY_RELEASE) cally_snoop_key_event (stage, (ClutterKeyEvent *) event); clutter_stage_emit_event (stage, event); @@ -729,7 +733,7 @@ maybe_remove_device_for_event (ClutterStage *stage, graphene_point_t point; uint32_t time; - if (event->type == CLUTTER_DEVICE_REMOVED) + if (clutter_event_type (event) == CLUTTER_DEVICE_REMOVED) { ClutterInputDeviceType device_type = clutter_input_device_get_device_type (device); @@ -776,6 +780,7 @@ clutter_stage_handle_event (ClutterStage *stage, { ClutterContext *context = _clutter_context_get_default(); ClutterActor *event_actor = NULL; + ClutterEventType event_type; gboolean filtered; g_return_if_fail (CLUTTER_IS_STAGE (stage)); @@ -785,7 +790,9 @@ clutter_stage_handle_event (ClutterStage *stage, if (CLUTTER_ACTOR_IN_DESTRUCTION (stage)) return; - switch (event->any.type) + event_type = clutter_event_type (event); + + switch (event_type) { case CLUTTER_ENTER: case CLUTTER_MOTION: @@ -798,10 +805,10 @@ clutter_stage_handle_event (ClutterStage *stage, break; } - if (event->any.type != CLUTTER_DEVICE_ADDED && - event->any.type != CLUTTER_DEVICE_REMOVED && - event->any.type != CLUTTER_NOTHING && - event->any.type != CLUTTER_EVENT_LAST) + if (event_type != CLUTTER_DEVICE_ADDED && + event_type != CLUTTER_DEVICE_REMOVED && + event_type != CLUTTER_NOTHING && + event_type != CLUTTER_EVENT_LAST) { event_actor = clutter_stage_get_event_actor (stage, event); } @@ -815,11 +822,11 @@ clutter_stage_handle_event (ClutterStage *stage, if (filtered) { - if (event->type == CLUTTER_MOTION || - event->type == CLUTTER_BUTTON_RELEASE || - event->type == CLUTTER_TOUCH_UPDATE || - event->type == CLUTTER_TOUCH_END || - event->type == CLUTTER_TOUCH_CANCEL) + if (event_type == CLUTTER_MOTION || + event_type == CLUTTER_BUTTON_RELEASE || + event_type == CLUTTER_TOUCH_UPDATE || + event_type == CLUTTER_TOUCH_END || + event_type == CLUTTER_TOUCH_CANCEL) { ClutterInputDevice *device = clutter_event_get_device (event); ClutterEventSequence *sequence = clutter_event_get_event_sequence (event); @@ -832,9 +839,9 @@ clutter_stage_handle_event (ClutterStage *stage, _clutter_stage_queue_event (stage, event, TRUE); } - if (event->type == CLUTTER_TOUCH_END || - event->type == CLUTTER_TOUCH_CANCEL || - event->type == CLUTTER_DEVICE_REMOVED) + if (event_type == CLUTTER_TOUCH_END || + event_type == CLUTTER_TOUCH_CANCEL || + event_type == CLUTTER_DEVICE_REMOVED) { _clutter_stage_process_queued_events (stage); maybe_remove_device_for_event (stage, event, TRUE); @@ -846,7 +853,7 @@ _clutter_process_event_details (ClutterActor *stage, ClutterMainContext *context, ClutterEvent *event) { - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_NOTHING: break; diff --git a/clutter/clutter/clutter-seat.c b/clutter/clutter/clutter-seat.c index 6dbcba81c..5bfe3ab9d 100644 --- a/clutter/clutter/clutter-seat.c +++ b/clutter/clutter/clutter-seat.c @@ -641,7 +641,7 @@ clutter_seat_handle_event_post (ClutterSeat *seat, device = clutter_event_get_source_device (event); g_assert_true (CLUTTER_IS_INPUT_DEVICE (device)); - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_DEVICE_ADDED: g_signal_emit (seat, signals[DEVICE_ADDED], 0, device); diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index 833a8563b..17d4d6f0c 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -755,17 +755,21 @@ _clutter_stage_process_queued_events (ClutterStage *stage) /* Skip consecutive motion events coming from the same device. */ if (next_event != NULL) { - if (event->type == CLUTTER_MOTION && - (next_event->type == CLUTTER_MOTION || - next_event->type == CLUTTER_LEAVE) && + float x, y; + + clutter_event_get_coords (event, &x, &y); + + if (clutter_event_type (event) == CLUTTER_MOTION && + (clutter_event_type (next_event) == CLUTTER_MOTION || + clutter_event_type (next_event) == CLUTTER_LEAVE) && (!check_device || (device == next_device))) { CLUTTER_NOTE (EVENT, "Omitting motion event at %d, %d", - (int) event->motion.x, - (int) event->motion.y); + (int) x, + (int) y); - if (next_event->type == CLUTTER_MOTION) + if (clutter_event_type (next_event) == CLUTTER_MOTION) { ClutterEvent *new_event; @@ -781,15 +785,16 @@ _clutter_stage_process_queued_events (ClutterStage *stage) goto next_event; } - else if (event->type == CLUTTER_TOUCH_UPDATE && - next_event->type == CLUTTER_TOUCH_UPDATE && - event->touch.sequence == next_event->touch.sequence && + else if (clutter_event_type (event) == CLUTTER_TOUCH_UPDATE && + clutter_event_type (next_event) == CLUTTER_TOUCH_UPDATE && + clutter_event_get_event_sequence (event) == + clutter_event_get_event_sequence (next_event) && (!check_device || (device == next_device))) { CLUTTER_NOTE (EVENT, "Omitting touch update event at %d, %d", - (int) event->touch.x, - (int) event->touch.y); + (int) x, + (int) y); goto next_event; } } @@ -4113,7 +4118,7 @@ clutter_stage_get_event_actor (ClutterStage *stage, g_return_val_if_fail (CLUTTER_IS_STAGE (stage), NULL); g_return_val_if_fail (event != NULL, NULL); - switch (event->type) + switch (clutter_event_type (event)) { case CLUTTER_KEY_PRESS: case CLUTTER_KEY_RELEASE: @@ -4290,13 +4295,16 @@ clutter_stage_emit_event (ClutterStage *self, PointerDeviceEntry *entry; ClutterActor *target_actor = NULL, *seat_grab_actor = NULL; gboolean is_sequence_begin, is_sequence_end; + ClutterEventType event_type; if (sequence != NULL) entry = g_hash_table_lookup (priv->touch_sequences, sequence); else entry = g_hash_table_lookup (priv->pointer_devices, device); - switch (event->type) + event_type = clutter_event_type (event); + + switch (event_type) { case CLUTTER_NOTHING: case CLUTTER_DEVICE_REMOVED: @@ -4358,10 +4366,10 @@ clutter_stage_emit_event (ClutterStage *self, seat_grab_actor = priv->topmost_grab ? priv->topmost_grab->actor : CLUTTER_ACTOR (self); is_sequence_begin = - event->type == CLUTTER_BUTTON_PRESS || event->type == CLUTTER_TOUCH_BEGIN; + event_type == CLUTTER_BUTTON_PRESS || event_type == CLUTTER_TOUCH_BEGIN; is_sequence_end = - event->type == CLUTTER_BUTTON_RELEASE || event->type == CLUTTER_TOUCH_END || - event->type == CLUTTER_TOUCH_CANCEL; + event_type == CLUTTER_BUTTON_RELEASE || event_type == CLUTTER_TOUCH_END || + event_type == CLUTTER_TOUCH_CANCEL; if (is_sequence_begin && setup_implicit_grab (entry)) { @@ -4393,7 +4401,7 @@ clutter_stage_emit_event (ClutterStage *self, if (is_sequence_end && release_implicit_grab (entry)) { /* Sync crossings after the implicit grab for mice */ - if (event->type == CLUTTER_BUTTON_RELEASE) + if (event_type == CLUTTER_BUTTON_RELEASE) sync_crossings_on_implicit_grab_end (self, entry); cleanup_implicit_grab (entry); diff --git a/clutter/clutter/clutter-text.c b/clutter/clutter/clutter-text.c index 34bceb05b..2b6a8716f 100644 --- a/clutter/clutter/clutter-text.c +++ b/clutter/clutter/clutter-text.c @@ -2389,7 +2389,7 @@ static gboolean clutter_text_touch_event (ClutterActor *actor, ClutterTouchEvent *event) { - switch (event->type) + switch (clutter_event_type ((ClutterEvent *) event)) { case CLUTTER_TOUCH_BEGIN: return clutter_text_press (actor, (ClutterEvent *) event); @@ -2430,6 +2430,9 @@ clutter_text_key_press (ClutterActor *actor, ClutterText *self = CLUTTER_TEXT (actor); ClutterTextPrivate *priv = self->priv; ClutterBindingPool *pool; + ClutterEventFlags flags; + ClutterModifierType modifiers; + uint32_t keyval; gboolean res; if (!priv->editable) @@ -2442,7 +2445,11 @@ clutter_text_key_press (ClutterActor *actor, pool = clutter_binding_pool_find (g_type_name (CLUTTER_TYPE_TEXT)); g_assert (pool != NULL); - if (!(event->flags & CLUTTER_EVENT_FLAG_INPUT_METHOD) && + flags = clutter_event_get_flags ((ClutterEvent *) event); + keyval = clutter_event_get_key_symbol ((ClutterEvent *) event); + modifiers = clutter_event_get_state ((ClutterEvent *) 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)) @@ -2452,12 +2459,12 @@ clutter_text_key_press (ClutterActor *actor, * the Unicode value and not the key symbol, unless they * contain the input method flag. */ - if (event->keyval == 0 && (event->flags & CLUTTER_EVENT_FLAG_SYNTHETIC) && - !(event->flags & CLUTTER_EVENT_FLAG_INPUT_METHOD)) + if (keyval == 0 && (flags & CLUTTER_EVENT_FLAG_SYNTHETIC) && + !(flags & CLUTTER_EVENT_FLAG_INPUT_METHOD)) res = FALSE; else - res = clutter_binding_pool_activate (pool, event->keyval, - event->modifier_state, + res = clutter_binding_pool_activate (pool, keyval, + modifiers, G_OBJECT (actor)); /* if the key binding has handled the event we bail out @@ -2467,7 +2474,7 @@ clutter_text_key_press (ClutterActor *actor, */ if (res) return CLUTTER_EVENT_STOP; - else if ((event->modifier_state & CLUTTER_CONTROL_MASK) == 0) + else if ((modifiers & CLUTTER_CONTROL_MASK) == 0) { gunichar key_unichar; @@ -3074,11 +3081,14 @@ clutter_text_event (ClutterActor *self, { ClutterText *text = CLUTTER_TEXT (self); ClutterTextPrivate *priv = text->priv; + ClutterEventType event_type; + + event_type = clutter_event_type (event); if (clutter_input_focus_is_focused (priv->input_focus) && - (event->type == CLUTTER_IM_COMMIT || - event->type == CLUTTER_IM_DELETE || - event->type == CLUTTER_IM_PREEDIT)) + (event_type == CLUTTER_IM_COMMIT || + event_type == CLUTTER_IM_DELETE || + event_type == CLUTTER_IM_PREEDIT)) { return clutter_input_focus_process_event (priv->input_focus, event); }