[gnome-shell] Run the startup animation when we don't have much going on
- From: Ray Strode <halfline src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] Run the startup animation when we don't have much going on
- Date: Mon, 18 Feb 2013 20:38:28 +0000 (UTC)
commit 1950a67e15fbacca7708462ad3fe6369de713997
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Feb 13 22:45:43 2013 -0500
Run the startup animation when we don't have much going on
Starting the startup animation when we don't have that much IO
makes it a lot more visible.
Based on a patch by Giovanni Campagna <gcampagna src gnome org>
https://bugzilla.gnome.org/show_bug.cgi?id=682429
js/ui/layout.js | 5 +++--
js/ui/main.js | 10 ++++++++++
2 files changed, 13 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/layout.js b/js/ui/layout.js
index 062cbdd..357a986 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -229,7 +229,6 @@ const LayoutManager = new Lang.Class({
Main.overview.connect('showing', Lang.bind(this, this._overviewShowing));
Main.overview.connect('hidden', Lang.bind(this, this._overviewHidden));
Main.sessionMode.connect('updated', Lang.bind(this, this._sessionUpdated));
- this._startupAnimation();
},
_overviewShowing: function() {
@@ -465,9 +464,11 @@ const LayoutManager = new Lang.Class({
return this._keyboardIndex;
},
- _startupAnimation: function() {
+ prepareStartupAnimation: function() {
this.panelBox.translation_y = -this.panelBox.height;
+ },
+ startupAnimation: function() {
let plymouthTransitionRunning = false;
// If we're the greeter, put up the xrootpmap actor
diff --git a/js/ui/main.js b/js/ui/main.js
index d7ba213..22edfb9 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -127,6 +127,7 @@ function startSession() {
// Setup the stage hierarchy early
layoutManager = new Layout.LayoutManager();
+
// Various parts of the codebase still refers to Main.uiGroup
// instead using the layoutManager. This keeps that code
// working until it's updated.
@@ -154,6 +155,7 @@ function startSession() {
BackgroundMenu.addBackgroundMenu(global.background_actor);
layoutManager.init();
+ layoutManager.prepareStartupAnimation();
overview.init();
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
@@ -190,6 +192,14 @@ function startSession() {
ExtensionDownloader.init();
ExtensionSystem.init();
+
+ // Run the startup animation as soon as the mainloop is idle enough.
+ // This is necessary to have it smooth and without interruptions from
+ // completed IO tasks
+ GLib.idle_add(GLib.PRIORITY_LOW, function() {
+ layoutManager.startupAnimation();
+ return false;
+ });
}
let _workspaces = [];
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]