From 952caf6b71d5f3dbba6244e3538fd4d196c348a7 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Fri, 16 Jul 2021 13:00:06 +0200 Subject: [PATCH] core: Refactor strip/ring direction guessing in action handling Make it all happen in meta_pad_action_mapper_handle_action(), since we'll need better handling here than just "return FALSE". Part-of: --- src/core/meta-pad-action-mapper.c | 74 +++++++++++++++---------------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/src/core/meta-pad-action-mapper.c b/src/core/meta-pad-action-mapper.c index 88634c32c..5b479a67d 100644 --- a/src/core/meta-pad-action-mapper.c +++ b/src/core/meta-pad-action-mapper.c @@ -581,34 +581,6 @@ meta_pad_action_mapper_handle_button (MetaPadActionMapper *mapper, } } -static gboolean -meta_pad_action_mapper_handle_action (MetaPadActionMapper *mapper, - ClutterInputDevice *pad, - MetaPadActionType action, - guint number, - MetaPadDirection direction, - guint mode) -{ - GSettings *settings; - gboolean handled = FALSE; - char *accel; - - settings = lookup_pad_action_settings (pad, action, number, direction, mode); - accel = g_settings_get_string (settings, "keybinding"); - - if (accel && *accel) - { - meta_pad_action_mapper_emulate_keybinding (mapper, accel, TRUE); - meta_pad_action_mapper_emulate_keybinding (mapper, accel, FALSE); - handled = TRUE; - } - - g_object_unref (settings); - g_free (accel); - - return handled; -} - static gboolean meta_pad_action_mapper_get_action_direction (MetaPadActionMapper *mapper, const ClutterEvent *event, @@ -660,12 +632,44 @@ meta_pad_action_mapper_get_action_direction (MetaPadActionMapper *mapper, return has_direction; } +static gboolean +meta_pad_action_mapper_handle_action (MetaPadActionMapper *mapper, + ClutterInputDevice *pad, + const ClutterEvent *event, + MetaPadActionType action, + guint number, + guint mode) +{ + MetaPadDirection direction = = META_PAD_DIRECTION_NONE; + GSettings *settings; + gboolean handled = FALSE; + char *accel; + + if (!meta_pad_action_mapper_get_action_direction (mapper, + event, &direction)) + return FALSE; + + settings = lookup_pad_action_settings (pad, action, number, direction, mode); + accel = g_settings_get_string (settings, "keybinding"); + + if (accel && *accel) + { + meta_pad_action_mapper_emulate_keybinding (mapper, accel, TRUE); + meta_pad_action_mapper_emulate_keybinding (mapper, accel, FALSE); + handled = TRUE; + } + + g_object_unref (settings); + g_free (accel); + + return handled; +} + gboolean meta_pad_action_mapper_handle_event (MetaPadActionMapper *mapper, const ClutterEvent *event) { ClutterInputDevice *pad; - MetaPadDirection direction = META_PAD_DIRECTION_NONE; pad = clutter_event_get_source_device ((ClutterEvent *) event); @@ -676,22 +680,14 @@ meta_pad_action_mapper_handle_event (MetaPadActionMapper *mapper, return meta_pad_action_mapper_handle_button (mapper, pad, &event->pad_button); case CLUTTER_PAD_RING: - if (!meta_pad_action_mapper_get_action_direction (mapper, - event, &direction)) - return FALSE; - return meta_pad_action_mapper_handle_action (mapper, pad, + return meta_pad_action_mapper_handle_action (mapper, pad, event, META_PAD_ACTION_RING, event->pad_ring.ring_number, - direction, event->pad_ring.mode); case CLUTTER_PAD_STRIP: - if (!meta_pad_action_mapper_get_action_direction (mapper, - event, &direction)) - return FALSE; - return meta_pad_action_mapper_handle_action (mapper, pad, + return meta_pad_action_mapper_handle_action (mapper, pad, event, META_PAD_ACTION_STRIP, event->pad_strip.strip_number, - direction, event->pad_strip.mode); default: return FALSE;