main: don't show stage until still frames are loaded

We sometimes map the stage before we've loaded a background on it
because of a race asynchronously loading the session mode.

This manifests as the startup animating starting over a white
background.

This commit defers showing the stage until after the still frames
are loaded.

https://bugzilla.gnome.org/show_bug.cgi?id=694321
This commit is contained in:
Ray Strode 2013-02-21 14:29:56 -05:00
parent 9525216d78
commit c562245c16
2 changed files with 4 additions and 0 deletions

View File

@ -573,6 +573,7 @@ const LayoutManager = new Lang.Class({
}, },
startupAnimation: function() { startupAnimation: function() {
global.stage.show();
if (Main.sessionMode.isGreeter) if (Main.sessionMode.isGreeter)
this._startupAnimationGreeter(); this._startupAnimationGreeter();
else else

View File

@ -89,6 +89,9 @@ function start() {
global.logError = window.log; global.logError = window.log;
global.log = window.log; global.log = window.log;
// Hide the stage until we're ready for it
global.stage.hide();
// Chain up async errors reported from C // Chain up async errors reported from C
global.connect('notify-error', function (global, msg, detail) { notifyError(msg, detail); }); global.connect('notify-error', function (global, msg, detail) { notifyError(msg, detail); });