[mutter] clutter/actor: Clean up clutter_actor_event()
- From: verdre <jonasd src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] clutter/actor: Clean up clutter_actor_event()
- Date: Tue, 16 Jun 2020 11:00:46 +0000 (UTC)
commit 0ab1a9fa44e6eb24504dfcbfd535616426c3d01a
Author: Jonas Dreßler <verdre v0yd nl>
Date: Tue Dec 17 22:03:26 2019 +0100
clutter/actor: Clean up clutter_actor_event()
We can easily do without the goto statement and use only one switch
statement in this function, so tidy it up a bit.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1275
clutter/clutter/clutter-actor.c | 201 +++++++++++++++++-----------------------
1 file changed, 85 insertions(+), 116 deletions(-)
---
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
index fc49fe6d12..7f6ef007b7 100644
--- a/clutter/clutter/clutter-actor.c
+++ b/clutter/clutter/clutter-actor.c
@@ -13679,138 +13679,107 @@ clutter_actor_set_child_at_index (ClutterActor *self,
gboolean
clutter_actor_event (ClutterActor *actor,
const ClutterEvent *event,
- gboolean capture)
+ gboolean capture)
{
gboolean retval = FALSE;
gint signal_num = -1;
+ GQuark detail = 0;
g_return_val_if_fail (CLUTTER_IS_ACTOR (actor), FALSE);
g_return_val_if_fail (event != NULL, FALSE);
g_object_ref (actor);
- if (capture)
+ switch (event->type)
{
- GQuark detail = 0;
-
- switch (event->type)
- {
- case CLUTTER_NOTHING:
- break;
- case CLUTTER_KEY_PRESS:
- case CLUTTER_KEY_RELEASE:
- detail = quark_key;
- break;
- case CLUTTER_MOTION:
- detail = quark_motion;
- break;
- case CLUTTER_ENTER:
- case CLUTTER_LEAVE:
- detail = quark_pointer_focus;
- break;
- case CLUTTER_BUTTON_PRESS:
- case CLUTTER_BUTTON_RELEASE:
- detail = quark_button;
- break;
- case CLUTTER_SCROLL:
- detail = quark_scroll;
- break;
- case CLUTTER_STAGE_STATE:
- detail = quark_stage;
- break;
- case CLUTTER_DESTROY_NOTIFY:
- detail = quark_destroy;
- break;
- case CLUTTER_CLIENT_MESSAGE:
- detail = quark_client;
- break;
- case CLUTTER_DELETE:
- detail = quark_delete;
- break;
- case CLUTTER_TOUCH_BEGIN:
- case CLUTTER_TOUCH_UPDATE:
- case CLUTTER_TOUCH_END:
- case CLUTTER_TOUCH_CANCEL:
- detail = quark_touch;
- break;
- case CLUTTER_TOUCHPAD_PINCH:
- case CLUTTER_TOUCHPAD_SWIPE:
- detail = quark_touchpad;
- break;
- case CLUTTER_PROXIMITY_IN:
- case CLUTTER_PROXIMITY_OUT:
- detail = quark_proximity;
- break;
- case CLUTTER_PAD_BUTTON_PRESS:
- case CLUTTER_PAD_BUTTON_RELEASE:
- case CLUTTER_PAD_STRIP:
- case CLUTTER_PAD_RING:
- detail = quark_pad;
- break;
- case CLUTTER_EVENT_LAST: /* Just keep compiler warnings quiet */
- break;
- }
-
- g_signal_emit (actor,
- actor_signals[CAPTURED_EVENT],
- detail,
- event,
- &retval);
- goto out;
+ case CLUTTER_NOTHING:
+ break;
+ case CLUTTER_BUTTON_PRESS:
+ signal_num = BUTTON_PRESS_EVENT;
+ detail = quark_button;
+ break;
+ case CLUTTER_BUTTON_RELEASE:
+ signal_num = BUTTON_RELEASE_EVENT;
+ detail = quark_button;
+ break;
+ case CLUTTER_SCROLL:
+ signal_num = SCROLL_EVENT;
+ detail = quark_scroll;
+ break;
+ case CLUTTER_KEY_PRESS:
+ signal_num = KEY_PRESS_EVENT;
+ detail = quark_key;
+ break;
+ case CLUTTER_KEY_RELEASE:
+ signal_num = KEY_RELEASE_EVENT;
+ detail = quark_key;
+ break;
+ case CLUTTER_MOTION:
+ signal_num = MOTION_EVENT;
+ detail = quark_motion;
+ break;
+ case CLUTTER_ENTER:
+ signal_num = ENTER_EVENT;
+ detail = quark_pointer_focus;
+ break;
+ case CLUTTER_LEAVE:
+ signal_num = LEAVE_EVENT;
+ detail = quark_pointer_focus;
+ break;
+ case CLUTTER_TOUCH_BEGIN:
+ case CLUTTER_TOUCH_END:
+ case CLUTTER_TOUCH_UPDATE:
+ case CLUTTER_TOUCH_CANCEL:
+ signal_num = TOUCH_EVENT;
+ detail = quark_touch;
+ break;
+ case CLUTTER_TOUCHPAD_PINCH:
+ case CLUTTER_TOUCHPAD_SWIPE:
+ signal_num = -1;
+ detail = quark_touchpad;
+ break;
+ case CLUTTER_PROXIMITY_IN:
+ case CLUTTER_PROXIMITY_OUT:
+ signal_num = -1;
+ detail = quark_proximity;
+ break;
+ case CLUTTER_PAD_BUTTON_PRESS:
+ case CLUTTER_PAD_BUTTON_RELEASE:
+ case CLUTTER_PAD_STRIP:
+ case CLUTTER_PAD_RING:
+ signal_num = -1;
+ detail = quark_pad;
+ break;
+ case CLUTTER_DELETE:
+ signal_num = -1;
+ detail = quark_delete;
+ break;
+ case CLUTTER_DESTROY_NOTIFY:
+ signal_num = -1;
+ detail = quark_destroy;
+ break;
+ case CLUTTER_CLIENT_MESSAGE:
+ signal_num = -1;
+ detail = quark_client;
+ break;
+ case CLUTTER_STAGE_STATE:
+ signal_num = -1;
+ detail = quark_stage;
+ break;
+ case CLUTTER_EVENT_LAST: /* Just keep compiler warnings quiet */
+ break;
}
- g_signal_emit (actor, actor_signals[EVENT], 0, event, &retval);
-
- if (!retval)
+ if (capture)
+ g_signal_emit (actor, actor_signals[CAPTURED_EVENT], detail, event, &retval);
+ else
{
- switch (event->type)
- {
- case CLUTTER_NOTHING:
- break;
- case CLUTTER_BUTTON_PRESS:
- signal_num = BUTTON_PRESS_EVENT;
- break;
- case CLUTTER_BUTTON_RELEASE:
- signal_num = BUTTON_RELEASE_EVENT;
- break;
- case CLUTTER_SCROLL:
- signal_num = SCROLL_EVENT;
- break;
- case CLUTTER_KEY_PRESS:
- signal_num = KEY_PRESS_EVENT;
- break;
- case CLUTTER_KEY_RELEASE:
- signal_num = KEY_RELEASE_EVENT;
- break;
- case CLUTTER_MOTION:
- signal_num = MOTION_EVENT;
- break;
- case CLUTTER_ENTER:
- signal_num = ENTER_EVENT;
- break;
- case CLUTTER_LEAVE:
- signal_num = LEAVE_EVENT;
- break;
- case CLUTTER_TOUCH_BEGIN:
- case CLUTTER_TOUCH_END:
- case CLUTTER_TOUCH_UPDATE:
- case CLUTTER_TOUCH_CANCEL:
- signal_num = TOUCH_EVENT;
- break;
- case CLUTTER_DELETE:
- case CLUTTER_DESTROY_NOTIFY:
- case CLUTTER_CLIENT_MESSAGE:
- default:
- signal_num = -1;
- break;
- }
+ g_signal_emit (actor, actor_signals[EVENT], 0, event, &retval);
- if (signal_num != -1)
- g_signal_emit (actor, actor_signals[signal_num], 0,
- event, &retval);
+ if (!retval && signal_num != -1)
+ g_signal_emit (actor, actor_signals[signal_num], 0, event, &retval);
}
-out:
g_object_unref (actor);
return retval;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]