diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c index 6913f315a..521d4264c 100644 --- a/clutter/clutter/clutter-actor.c +++ b/clutter/clutter/clutter-actor.c @@ -1793,7 +1793,7 @@ clutter_actor_show (ClutterActor *self) g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_VISIBLE]); if (priv->parent != NULL) - clutter_actor_queue_redraw (priv->parent); + clutter_actor_queue_redraw (self); g_object_thaw_notify (G_OBJECT (self)); } @@ -1918,8 +1918,10 @@ clutter_actor_hide (ClutterActor *self) g_signal_emit (self, actor_signals[HIDE], 0); g_object_notify_by_pspec (G_OBJECT (self), obj_props[PROP_VISIBLE]); - if (priv->parent != NULL) + if (priv->parent != NULL && priv->needs_allocation) clutter_actor_queue_redraw (priv->parent); + else + clutter_actor_queue_redraw_on_parent (self); g_object_thaw_notify (G_OBJECT (self)); }