This is an automated email from the git hooks/post-receive script. n o m a d p u s h e d a c o m m i t t o b r a n c h m a s t e r in repository apps/xfdashboard.
commit ba4ebddda5031c1683c6eddef8fa28435b67c46d Author: Stephan Haller <no...@froevel.de> Date: Wed Mar 25 08:12:00 2020 +0100 Refactor internal code to add and remove animations at actors to make them commonly usable. --- libxfdashboard/actor.c | 77 +++++++++++++++++++++++++++----------------------- 1 file changed, 41 insertions(+), 36 deletions(-) diff --git a/libxfdashboard/actor.c b/libxfdashboard/actor.c index bf70284..3f122b7 100644 --- a/libxfdashboard/actor.c +++ b/libxfdashboard/actor.c @@ -836,12 +836,10 @@ static void _xfdashboard_actor_animation_done(XfdashboardAnimation *inAnimation, /* Remove animations for signal and (pseudo-)class */ static void _xfdashboard_actor_remove_animation(XfdashboardStylable *inStylable, - const gchar *inSignalPrefix, - const gchar *inClass) + const gchar *inAnimationSignal) { XfdashboardActor *self; XfdashboardActorPrivate *priv; - gchar *animationSignal; GSList *iter; XfdashboardActorAnimationEntry *data; @@ -850,9 +848,6 @@ static void _xfdashboard_actor_remove_animation(XfdashboardStylable *inStylable, self=XFDASHBOARD_ACTOR(inStylable); priv=self->priv; - /* Get signal to lookup animation */ - animationSignal=g_strdup_printf("%s:%s", inSignalPrefix, inClass); - /* Iterate through list of animation and lookup animation for signal. If an * animation is found, stop it. It will be remove from list of animations * automatically. @@ -864,12 +859,12 @@ static void _xfdashboard_actor_remove_animation(XfdashboardStylable *inStylable, if(!data) continue; /* Check if animation entry matches the signal to lookup */ - if(g_strcmp0(data->signal, animationSignal)==0) + if(g_strcmp0(data->signal, inAnimationSignal)==0) { XFDASHBOARD_DEBUG(self, ANIMATION, "Stopping and removing animation '%s' for signal '%s'", xfdashboard_animation_get_id(data->animation), - animationSignal); + inAnimationSignal); /* Stop animation by unreffing object instance which calls the * done callback _xfdashboard_actor_animation_done() of animation. @@ -877,20 +872,15 @@ static void _xfdashboard_actor_remove_animation(XfdashboardStylable *inStylable, g_object_unref(data->animation); } } - - /* Release allocated resources */ - g_free(animationSignal); } /* Lookup animations for signal and (pseudo-)class and run animation at actor */ static void _xfdashboard_actor_add_animation(XfdashboardStylable *inStylable, - const gchar *inSignalPrefix, - const gchar *inClass) + const gchar *inAnimationSignal) { XfdashboardActor *self; XfdashboardActorPrivate *priv; XfdashboardAnimation *animation; - gchar *animationSignal; XfdashboardActorAnimationEntry *data; g_return_if_fail(XFDASHBOARD_IS_ACTOR(inStylable)); @@ -898,18 +888,14 @@ static void _xfdashboard_actor_add_animation(XfdashboardStylable *inStylable, self=XFDASHBOARD_ACTOR(inStylable); priv=self->priv; - /* Get signal to lookup animation */ - animationSignal=g_strdup_printf("%s:%s", inSignalPrefix, inClass); - /* Lookup animation for signal-(pseudo-)class combination and if any found * (i.e. has an ID) add it to list of animations of actor and run it. */ - animation=xfdashboard_animation_new(XFDASHBOARD_ACTOR(self), animationSignal); + animation=xfdashboard_animation_new(XFDASHBOARD_ACTOR(self), inAnimationSignal); if(!xfdashboard_animation_get_id(animation)) { /* Empty or invalid animation, so release allocated resources and return */ g_object_unref(animation); - g_free(animationSignal); return; } @@ -919,11 +905,10 @@ static void _xfdashboard_actor_add_animation(XfdashboardStylable *inStylable, { XFDASHBOARD_DEBUG(self, ANIMATION, "Duplicate animation found for signal '%s'", - animationSignal); + inAnimationSignal); /* Release allocated resources */ g_object_unref(animation); - g_free(animationSignal); return; } @@ -934,16 +919,15 @@ static void _xfdashboard_actor_add_animation(XfdashboardStylable *inStylable, { g_critical(_("Cannot allocate memory for animation entry for animation '%s' with signal '%s'"), xfdashboard_animation_get_id(animation), - animationSignal); + inAnimationSignal); /* Release allocated resources */ g_object_unref(animation); - g_free(animationSignal); return; } - data->signal=g_strdup(animationSignal); + data->signal=g_strdup(inAnimationSignal); data->animation=animation; priv->animations=g_slist_prepend(priv->animations, data); @@ -953,58 +937,79 @@ static void _xfdashboard_actor_add_animation(XfdashboardStylable *inStylable, XFDASHBOARD_DEBUG(self, ANIMATION, "Found and starting animation '%s' for signal '%s'", xfdashboard_animation_get_id(animation), - animationSignal); - - /* Release allocated resources */ - g_free(animationSignal); + inAnimationSignal); } /* Signal handler for "class-added" signal of stylable interface */ static void _xfdashboard_actor_stylable_class_added(XfdashboardStylable *inStylable, const gchar *inClass) { + gchar *animationSignal; + g_return_if_fail(XFDASHBOARD_IS_ACTOR(inStylable)); /* Remove any animation that was added when this class was removed */ - _xfdashboard_actor_remove_animation(inStylable, "class-removed", inClass); + animationSignal=g_strdup_printf("class-removed:%s", inClass); + _xfdashboard_actor_remove_animation(inStylable, animationSignal); + g_free(animationSignal); /* Create animation for this class added */ - _xfdashboard_actor_add_animation(inStylable, "class-added", inClass); + animationSignal=g_strdup_printf("class-added:%s", inClass); + _xfdashboard_actor_add_animation(inStylable, animationSignal); + g_free(animationSignal); } /* Signal handler for "class-removed" signal of stylable interface */ static void _xfdashboard_actor_stylable_class_removed(XfdashboardStylable *inStylable, const gchar *inClass) { + gchar *animationSignal; + g_return_if_fail(XFDASHBOARD_IS_ACTOR(inStylable)); /* Remove any animation that was added when this class was added */ - _xfdashboard_actor_remove_animation(inStylable, "class-added", inClass); + animationSignal=g_strdup_printf("class-added:%s", inClass); + _xfdashboard_actor_remove_animation(inStylable, animationSignal); + g_free(animationSignal); /* Create animation for this class removed */ - _xfdashboard_actor_add_animation(inStylable, "class-removed", inClass); + animationSignal=g_strdup_printf("class-removed:%s", inClass); + _xfdashboard_actor_add_animation(inStylable, animationSignal); + g_free(animationSignal); } /* Signal handler for "pseudo-class-added" signal of stylable interface */ static void _xfdashboard_actor_stylable_pseudo_class_added(XfdashboardStylable *inStylable, const gchar *inClass) { + gchar *animationSignal; + g_return_if_fail(XFDASHBOARD_IS_ACTOR(inStylable)); /* Remove any animation that was added when this pseudo-class was removed */ - _xfdashboard_actor_remove_animation(inStylable, "pseudo-class-removed", inClass); + animationSignal=g_strdup_printf("pseudo-class-removed:%s", inClass); + _xfdashboard_actor_remove_animation(inStylable, animationSignal); + g_free(animationSignal); /* Create animation for this pseudo-class added */ - _xfdashboard_actor_add_animation(inStylable, "pseudo-class-added", inClass); + animationSignal=g_strdup_printf("pseudo-class-added:%s", inClass); + _xfdashboard_actor_add_animation(inStylable, animationSignal); + g_free(animationSignal); } /* Signal handler for "pseudo-class-removed" signal of stylable interface */ static void _xfdashboard_actor_stylable_pseudo_class_removed(XfdashboardStylable *inStylable, const gchar *inClass) { + gchar *animationSignal; + g_return_if_fail(XFDASHBOARD_IS_ACTOR(inStylable)); /* Remove any animation that was added when this pseudo-class was added */ - _xfdashboard_actor_remove_animation(inStylable, "pseudo-class-added", inClass); + animationSignal=g_strdup_printf("pseudo-class-added:%s", inClass); + _xfdashboard_actor_remove_animation(inStylable, animationSignal); + g_free(animationSignal); /* Create animation for this pseudo-class removed */ - _xfdashboard_actor_add_animation(inStylable, "pseudo-class-removed", inClass); + animationSignal=g_strdup_printf("pseudo-class-removed:%s", inClass); + _xfdashboard_actor_add_animation(inStylable, animationSignal); + g_free(animationSignal); } /* Interface initialization -- To stop receiving notification emails like this one, please contact the administrator of this repository. _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits