[gnome-shell] layout: Move showing the stage and the startup-prepared signal
- From: Jasper St. Pierre <jstpierre src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] layout: Move showing the stage and the startup-prepared signal
- Date: Thu, 7 Mar 2013 21:50:43 +0000 (UTC)
commit e2463cb5011c2bd658e55143ce114100ab1a0ec6
Author: Jasper St. Pierre <jstpierre mecheye net>
Date: Wed Mar 6 17:55:33 2013 -0500
layout: Move showing the stage and the startup-prepared signal
Waiting until we're idle means nothing if we're constructing
complex actors.
https://bugzilla.gnome.org/show_bug.cgi?id=694321
js/ui/layout.js | 26 ++++++++++++++------------
js/ui/main.js | 4 ----
2 files changed, 14 insertions(+), 16 deletions(-)
---
diff --git a/js/ui/layout.js b/js/ui/layout.js
index 6ca5d84..b04cb5a 100644
--- a/js/ui/layout.js
+++ b/js/ui/layout.js
@@ -231,6 +231,8 @@ 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._prepareStartupAnimation();
},
_overviewShowing: function() {
@@ -547,7 +549,7 @@ const LayoutManager = new Lang.Class({
// MetaBackgroundActor inside global.window_group covers the entirety of the
// screen. So, we set no_clear_hint at the end of the animation.
- prepareStartupAnimation: function() {
+ _prepareStartupAnimation: function() {
// Set ourselves to FULLSCREEN input mode while the animation is running
// so events don't get delivered to X11 windows (which are distorted by the animation)
global.stage_input_mode = Shell.StageInputMode.FULLSCREEN;
@@ -585,25 +587,25 @@ const LayoutManager = new Lang.Class({
Lang.bind(this, function() {
this._systemBackground.disconnect(signalId);
this._systemBackground.actor.show();
+ global.stage.show();
+
+ this.emit('startup-prepared');
// We're mostly prepared for the startup animation
// now, but since a lot is going on asynchronously
- // during startup, let's defer emission of the
- // startup-prepared signal until the event loop is
- // uncontended and idle. This helps to prevent us
- // from running the animation when the system is
- // bogged down
+ // during startup, let's defer the startup
animation
+ // until the event loop is uncontended and idle.
+ // This helps to prevent us from running the
animation
+ // when the system is bogged down
GLib.idle_add(GLib.PRIORITY_LOW,
Lang.bind(this, function() {
-
this.emit('startup-prepared');
- return false;
- }));
-
+ this._startupAnimation();
+ return false;
+ }));
}));
},
- startupAnimation: function() {
- global.stage.show();
+ _startupAnimation: function() {
if (Main.sessionMode.isGreeter)
this._startupAnimationGreeter();
else
diff --git a/js/ui/main.js b/js/ui/main.js
index b7a412c..f727a66 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -153,7 +153,6 @@ function _initializeUI() {
componentManager = new Components.ComponentManager();
layoutManager.init();
- layoutManager.prepareStartupAnimation();
overview.init();
global.screen.override_workspace_layout(Meta.ScreenCorner.TOPLEFT,
@@ -192,9 +191,6 @@ function _initializeUI() {
ExtensionDownloader.init();
ExtensionSystem.init();
- layoutManager.connect('startup-prepared', function() {
- layoutManager.startupAnimation();
- });
layoutManager.connect('startup-complete', function() {
if (keybindingMode == Shell.KeyBindingMode.NONE) {
keybindingMode = Shell.KeyBindingMode.NORMAL;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]