mirror of
https://github.com/brl/mutter.git
synced 2024-12-27 13:22:15 +00:00
[animation] Remove InitiallyUnowned from Animation
ClutterAnimation currently inherits the initial floating reference semantics from GInitiallyUnowned. An Animation is, though, meant to be used as a top-level object, like a Timeline or a Behaviour, and not "owned" by another object. For this reason, the initial floating reference does not make any sense.
This commit is contained in:
parent
d6d208da7d
commit
ab1dcb8033
@ -102,7 +102,7 @@ static guint animation_signals[LAST_SIGNAL] = { 0, };
|
||||
|
||||
static GQuark quark_object_animation = 0;
|
||||
|
||||
G_DEFINE_TYPE (ClutterAnimation, clutter_animation, G_TYPE_INITIALLY_UNOWNED);
|
||||
G_DEFINE_TYPE (ClutterAnimation, clutter_animation, G_TYPE_OBJECT);
|
||||
|
||||
static void on_animation_weak_notify (gpointer data,
|
||||
GObject *animation_pointer);
|
||||
@ -853,9 +853,8 @@ on_animation_weak_notify (gpointer data,
|
||||
* lifetime of a #ClutterAnimation instance, so you should consider using
|
||||
* those functions instead of manually creating an animation.
|
||||
*
|
||||
* Return value: the newly created #ClutterAnimation. Use g_object_ref_sink()
|
||||
* to take ownership of the Animation instance, and g_object_unref() to
|
||||
* release the associated resources
|
||||
* Return value: the newly created #ClutterAnimation. Use g_object_unref()
|
||||
* to release the associated resources
|
||||
*
|
||||
* Since: 1.0
|
||||
*/
|
||||
@ -886,8 +885,6 @@ clutter_animation_set_object (ClutterAnimation *animation,
|
||||
|
||||
priv = animation->priv;
|
||||
|
||||
g_object_ref (object);
|
||||
|
||||
if (priv->object)
|
||||
{
|
||||
g_object_weak_unref (G_OBJECT (animation),
|
||||
@ -897,13 +894,14 @@ clutter_animation_set_object (ClutterAnimation *animation,
|
||||
g_object_unref (priv->object);
|
||||
}
|
||||
|
||||
priv->object = object;
|
||||
priv->object = g_object_ref (object);
|
||||
g_object_weak_ref (G_OBJECT (animation),
|
||||
on_animation_weak_notify,
|
||||
priv->object);
|
||||
g_object_set_qdata (G_OBJECT (priv->object),
|
||||
quark_object_animation,
|
||||
animation);
|
||||
g_object_set_qdata_full (G_OBJECT (priv->object),
|
||||
quark_object_animation,
|
||||
animation,
|
||||
NULL);
|
||||
|
||||
g_object_notify (G_OBJECT (animation), "object");
|
||||
}
|
||||
|
@ -59,7 +59,7 @@ typedef struct _ClutterAnimationClass ClutterAnimationClass;
|
||||
struct _ClutterAnimation
|
||||
{
|
||||
/*< private >*/
|
||||
GInitiallyUnowned parent_instance;
|
||||
GObject parent_instance;
|
||||
|
||||
ClutterAnimationPrivate *priv;
|
||||
};
|
||||
@ -77,7 +77,7 @@ struct _ClutterAnimation
|
||||
struct _ClutterAnimationClass
|
||||
{
|
||||
/*< private >*/
|
||||
GInitiallyUnownedClass parent_class;
|
||||
GObjectClass parent_class;
|
||||
|
||||
/*< public >*/
|
||||
void (* started) (ClutterAnimation *animation);
|
||||
|
Loading…
Reference in New Issue
Block a user