diff --git a/clutter/clutter/clutter-stage.c b/clutter/clutter/clutter-stage.c index aabf302ff..d50fd37f0 100644 --- a/clutter/clutter/clutter-stage.c +++ b/clutter/clutter/clutter-stage.c @@ -1402,11 +1402,8 @@ gboolean _clutter_stage_do_update (ClutterStage *stage) { ClutterStagePrivate *priv = stage->priv; - gboolean stage_was_relayout = priv->stage_was_relayout; GSList *devices = NULL; - priv->stage_was_relayout = FALSE; - priv->needs_update = FALSE; /* if the stage is being destroyed, or if the destruction already @@ -1430,12 +1427,16 @@ _clutter_stage_do_update (ClutterStage *stage) if (!priv->redraw_pending) return FALSE; - if (stage_was_relayout) - devices = clutter_stage_find_updated_devices (stage); - update_actor_stage_views (stage); clutter_stage_maybe_finish_queue_redraws (stage); + + if (priv->stage_was_relayout) + { + priv->stage_was_relayout = FALSE; + devices = clutter_stage_find_updated_devices (stage); + } + clutter_stage_do_redraw (stage); /* reset the guard, so that new redraws are possible */