diff options
author | Lionel Landwerlin <llandwerlin@gmail.com> | 2013-09-09 07:52:55 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2013-11-20 23:16:20 +0000 |
commit | 3e02990dbe56b67603fac20b9cb27b6989688268 (patch) | |
tree | 69a34dda0f98eecbfef180edd1036e9686799079 | |
parent | b45a1ded44dc585a9755cb9b55729931fd40c410 (diff) | |
download | clutter-3e02990dbe56b67603fac20b9cb27b6989688268.tar.gz |
click-action: disconnect signals and gsources on dispose
https://bugzilla.gnome.org/show_bug.cgi?id=707774
(cherry picked from commit 5c035f2107cda24a074246d6b083296da2526c07)
Signed-off-by: Emmanuele Bassi <ebassi@gnome.org>
-rw-r--r-- | clutter/clutter-click-action.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/clutter/clutter-click-action.c b/clutter/clutter-click-action.c index 3fe164cfa..b730f3f7b 100644 --- a/clutter/clutter-click-action.c +++ b/clutter/clutter-click-action.c @@ -535,6 +535,34 @@ clutter_click_action_get_property (GObject *gobject, } static void +clutter_click_action_dispose (GObject *gobject) +{ + ClutterClickActionPrivate *priv = CLUTTER_CLICK_ACTION (gobject)->priv; + + if (priv->event_id) + { + g_signal_handler_disconnect (clutter_actor_meta_get_actor (CLUTTER_ACTOR_META (gobject)), + priv->event_id); + priv->event_id = 0; + } + + if (priv->capture_id) + { + g_signal_handler_disconnect (priv->stage, priv->capture_id); + priv->capture_id = 0; + } + + if (priv->long_press_id) + { + g_source_remove (priv->long_press_id); + priv->long_press_id = 0; + } + + G_OBJECT_CLASS (clutter_click_action_parent_class)->dispose (gobject); +} + + +static void clutter_click_action_class_init (ClutterClickActionClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); @@ -544,6 +572,7 @@ clutter_click_action_class_init (ClutterClickActionClass *klass) meta_class->set_actor = clutter_click_action_set_actor; + gobject_class->dispose = clutter_click_action_dispose; gobject_class->set_property = clutter_click_action_set_property; gobject_class->get_property = clutter_click_action_get_property; |