From 24cdcc56da40c8c97cc870e34c46795bef967d91 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Tue, 28 Aug 2018 20:29:13 +0000 Subject: [PATCH] st-bin: Destroy child in ClutterActor:destroy vfunc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to Clutter documentation, "[…] actors implementing the ClutterContainer interface should override the default implementation of the class handler of this signal and call clutter_actor_destroy() on their children." StBin was doing that in GObject:dispose() instead. Move the child destruction to a new ClutterActor:destroy() vfunc override. (cherry picked from commit b719744e75e56502cf0340066f9311fdcc755628) --- src/st/st-bin.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/st/st-bin.c b/src/st/st-bin.c index f8b58da99..21b36876a 100644 --- a/src/st/st-bin.c +++ b/src/st/st-bin.c @@ -177,15 +177,15 @@ st_bin_get_preferred_height (ClutterActor *self, } static void -st_bin_dispose (GObject *gobject) +st_bin_destroy (ClutterActor *actor) { - StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (gobject)); + StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (actor)); if (priv->child) clutter_actor_destroy (priv->child); g_assert (priv->child == NULL); - G_OBJECT_CLASS (st_bin_parent_class)->dispose (gobject); + CLUTTER_ACTOR_CLASS (st_bin_parent_class)->destroy (actor); } static void @@ -315,11 +315,11 @@ st_bin_class_init (StBinClass *klass) gobject_class->set_property = st_bin_set_property; gobject_class->get_property = st_bin_get_property; - gobject_class->dispose = st_bin_dispose; actor_class->get_preferred_width = st_bin_get_preferred_width; actor_class->get_preferred_height = st_bin_get_preferred_height; actor_class->allocate = st_bin_allocate; + actor_class->destroy = st_bin_destroy; widget_class->popup_menu = st_bin_popup_menu; widget_class->navigate_focus = st_bin_navigate_focus;