2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
+ * clutter/clutter-label.c (clutter_label_allocate): Keep the
+ layout if the size of the allocation is the same as the last
+ allocation received by the label.
+
+2008-06-11 Emmanuele Bassi <ebassi@openedhand.com>
+
* clutter/clutter-actor.c: Notify :x, :y, :width and :height
properties using ClutterUnits, not pixels.
PangoAttrList *attrs;
PangoAttrList *effective_attrs;
PangoLayout *layout;
+
+ ClutterUnit layout_width;
};
/*
ClutterLabelPrivate *priv = label->priv;
ClutterActorClass *parent_class;
- /* the allocation was changed, so we must recreate the layout */
- if (priv->layout)
+ if (priv->layout_width != (box->x2 - box->x1))
{
- g_object_unref (priv->layout);
- priv->layout = NULL;
- }
+ /* the allocation was changed, so we must recreate the layout */
+ if (priv->layout)
+ {
+ g_object_unref (priv->layout);
+ priv->layout = NULL;
+ }
- priv->layout = clutter_label_create_layout (label, box->x2 - box->x1);
+ priv->layout = clutter_label_create_layout (label, box->x2 - box->x1);
+ priv->layout_width = box->x2 - box->x1;
+ }
parent_class = CLUTTER_ACTOR_CLASS (clutter_label_parent_class);
parent_class->allocate (self, box, origin_changed);