From: Emmanuele Bassi Date: Sat, 17 Mar 2012 16:17:39 +0000 (+0000) Subject: actor: Fix set_scale_with_gravity() X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=63f3eaab62ddd42af5b0d3511d3930232c496485;p=profile%2Fivi%2Fclutter.git actor: Fix set_scale_with_gravity() Add a scale-gravity internal setter, and make set_scale_with_gravity() call it, along with the scale factor. --- diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c index 460b5d0..78f3006 100644 --- a/clutter/clutter-actor.c +++ b/clutter/clutter-actor.c @@ -4158,6 +4158,30 @@ clutter_actor_set_scale_center (ClutterActor *self, } static inline void +clutter_actor_set_scale_gravity (ClutterActor *self, + ClutterGravity gravity) +{ + ClutterTransformInfo *info; + GObject *obj; + + info = _clutter_actor_get_transform_info (self); + obj = G_OBJECT (self); + + if (gravity == CLUTTER_GRAVITY_NONE) + clutter_anchor_coord_set_units (&info->scale_center, 0, 0, 0); + else + clutter_anchor_coord_set_gravity (&info->scale_center, gravity); + + self->priv->transform_valid = FALSE; + + g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_CENTER_X]); + g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_CENTER_Y]); + g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_GRAVITY]); + + clutter_actor_queue_redraw (self); +} + +static inline void clutter_actor_set_anchor_coord (ClutterActor *self, ClutterRotateAxis axis, gfloat coord) @@ -4326,18 +4350,7 @@ clutter_actor_set_property (GObject *object, break; case PROP_SCALE_GRAVITY: - { - const ClutterTransformInfo *info; - ClutterGravity gravity; - - info = _clutter_actor_get_transform_info_or_defaults (actor); - gravity = g_value_get_enum (value); - - clutter_actor_set_scale_with_gravity (actor, - info->scale_x, - info->scale_y, - gravity); - } + clutter_actor_set_scale_gravity (actor, g_value_get_enum (value)); break; case PROP_CLIP: @@ -9770,35 +9783,15 @@ clutter_actor_set_scale_with_gravity (ClutterActor *self, gdouble scale_y, ClutterGravity gravity) { - ClutterTransformInfo *info; - GObject *obj; - g_return_if_fail (CLUTTER_IS_ACTOR (self)); - obj = G_OBJECT (self); - - g_object_freeze_notify (obj); - - info = _clutter_actor_get_transform_info (self); - info->scale_x = scale_x; - info->scale_y = scale_y; - - if (gravity == CLUTTER_GRAVITY_NONE) - clutter_anchor_coord_set_units (&info->scale_center, 0, 0, 0); - else - clutter_anchor_coord_set_gravity (&info->scale_center, gravity); - - self->priv->transform_valid = FALSE; - - g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_X]); - g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_Y]); - g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_CENTER_X]); - g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_CENTER_Y]); - g_object_notify_by_pspec (obj, obj_props[PROP_SCALE_GRAVITY]); + g_object_freeze_notify (G_OBJECT (self)); - clutter_actor_queue_redraw (self); + clutter_actor_set_scale_factor (self, CLUTTER_X_AXIS, scale_x); + clutter_actor_set_scale_factor (self, CLUTTER_Y_AXIS, scale_y); + clutter_actor_set_scale_gravity (self, gravity); - g_object_thaw_notify (obj); + g_object_thaw_notify (G_OBJECT (self)); } /**