[mutter/gbsneto/cancel-input-actions: 3/5] clutter/gesture-action: Cancel gesture when disabling the action
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gbsneto/cancel-input-actions: 3/5] clutter/gesture-action: Cancel gesture when disabling the action
- Date: Wed, 8 Apr 2020 20:32:19 +0000 (UTC)
commit 633d5d1b847bbfa5c94c662e262ccc921bbf40cb
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Wed Apr 8 12:40:03 2020 -0300
clutter/gesture-action: Cancel gesture when disabling the action
Like the click action, it makes sense to cancel the ongoing gesture
when the action is disabled. Do so by overriding our new friend,
ClutterActorMeta.set_enabled, and canceling the gesture when disabling
the action.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1188
clutter/clutter/clutter-gesture-action.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
---
diff --git a/clutter/clutter/clutter-gesture-action.c b/clutter/clutter/clutter-gesture-action.c
index bd345eacb..636053036 100644
--- a/clutter/clutter/clutter-gesture-action.c
+++ b/clutter/clutter/clutter-gesture-action.c
@@ -556,6 +556,21 @@ clutter_gesture_action_set_actor (ClutterActorMeta *meta,
meta_class->set_actor (meta, actor);
}
+static void
+clutter_gesture_action_set_enabled (ClutterActorMeta *meta,
+ gboolean is_enabled)
+{
+ ClutterActorMetaClass *meta_class =
+ CLUTTER_ACTOR_META_CLASS (clutter_gesture_action_parent_class);
+ ClutterGestureAction *gesture_action = CLUTTER_GESTURE_ACTION (meta);
+ ClutterGestureActionPrivate *priv = gesture_action->priv;
+
+ if (!is_enabled && priv->in_gesture)
+ cancel_gesture (gesture_action);
+
+ meta_class->set_enabled (meta, is_enabled);
+}
+
static gboolean
default_event_handler (ClutterGestureAction *action,
ClutterActor *actor)
@@ -654,6 +669,7 @@ clutter_gesture_action_class_init (ClutterGestureActionClass *klass)
gobject_class->get_property = clutter_gesture_action_get_property;
meta_class->set_actor = clutter_gesture_action_set_actor;
+ meta_class->set_enabled = clutter_gesture_action_set_enabled;
klass->gesture_begin = default_event_handler;
klass->gesture_progress = default_event_handler;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]