[mutter/gbsneto/cancel-input-actions: 2/3] clutter/click-action: Release when disabling
- From: Georges Basile Stavracas Neto <gbsneto src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/gbsneto/cancel-input-actions: 2/3] clutter/click-action: Release when disabling
- Date: Wed, 8 Apr 2020 15:51:28 +0000 (UTC)
commit 45f588e75bad61e92fe13b5ce6f3508860baaa5a
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date: Wed Apr 8 12:36:34 2020 -0300
clutter/click-action: Release when disabling
ClutterClickAction, like other actions, can potentially be disabled
at any time (that is not during painting). When that happens with
ClutterClickAction, it must release all timeouts and disconnect from
the stage's 'capture-event'.
Override ClutterActorMeta.set_enabled and release the click action
when the action is being disabled.
clutter/clutter/clutter-click-action.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
---
diff --git a/clutter/clutter/clutter-click-action.c b/clutter/clutter/clutter-click-action.c
index 6b523b033..6e7ea9d01 100644
--- a/clutter/clutter/clutter-click-action.c
+++ b/clutter/clutter/clutter-click-action.c
@@ -467,6 +467,20 @@ clutter_click_action_set_actor (ClutterActorMeta *meta,
CLUTTER_ACTOR_META_CLASS (clutter_click_action_parent_class)->set_actor (meta, actor);
}
+static void
+clutter_click_action_set_enabled (ClutterActorMeta *meta,
+ gboolean is_enabled)
+{
+ ClutterClickAction *click_action = CLUTTER_CLICK_ACTION (meta);
+ ClutterActorMetaClass *parent_class =
+ CLUTTER_ACTOR_META_CLASS (clutter_click_action_parent_class);
+
+ if (!is_enabled)
+ clutter_click_action_release (click_action);
+
+ parent_class->set_enabled (meta, is_enabled);
+}
+
static void
clutter_click_action_set_property (GObject *gobject,
guint prop_id,
@@ -546,6 +560,7 @@ clutter_click_action_class_init (ClutterClickActionClass *klass)
ClutterActorMetaClass *meta_class = CLUTTER_ACTOR_META_CLASS (klass);
meta_class->set_actor = clutter_click_action_set_actor;
+ meta_class->set_enabled = clutter_click_action_set_enabled;
gobject_class->dispose = clutter_click_action_dispose;
gobject_class->set_property = clutter_click_action_set_property;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]