text: Invalidate caches and sizes in set_text_internal()

The change in commit 3bbc96e17e moved the
:text property setter to use set_text_internal(); this function does not
invalidate the Layout cache and does not queue a relayout, thus breaking
the behaviour of ClutterText when setting the contents of the actor using
the property.

http://bugzilla.openedhand.com/show_bug.cgi?id=1851
This commit is contained in:
Emmanuele Bassi 2009-10-20 22:05:04 +01:00
parent 91c38f877f
commit 571df43b6d

View File

@ -804,6 +804,10 @@ clutter_text_set_text_internal (ClutterText *self,
clutter_text_set_selection_bound (self, -1); clutter_text_set_selection_bound (self, -1);
} }
clutter_text_dirty_cache (self);
clutter_actor_queue_relayout (CLUTTER_ACTOR (self));
g_signal_emit (self, text_signals[TEXT_CHANGED], 0); g_signal_emit (self, text_signals[TEXT_CHANGED], 0);
g_object_notify (G_OBJECT (self), "text"); g_object_notify (G_OBJECT (self), "text");
@ -3443,10 +3447,6 @@ clutter_text_set_text (ClutterText *self,
clutter_text_set_use_markup_internal (self, FALSE); clutter_text_set_use_markup_internal (self, FALSE);
clutter_text_set_text_internal (self, text ? text : ""); clutter_text_set_text_internal (self, text ? text : "");
clutter_text_dirty_cache (self);
clutter_actor_queue_relayout (CLUTTER_ACTOR (self));
} }
/** /**
@ -3479,10 +3479,6 @@ clutter_text_set_markup (ClutterText *self,
clutter_text_set_markup_internal (self, markup); clutter_text_set_markup_internal (self, markup);
else else
clutter_text_set_text_internal (self, ""); clutter_text_set_text_internal (self, "");
clutter_text_dirty_cache (self);
clutter_actor_queue_relayout (CLUTTER_ACTOR (self));
} }
/** /**