[Pkg-mozext-commits] [firetray] 329/399: base the startup event on the first 'before-first-paint'
David Prévot
taffit at alioth.debian.org
Tue Oct 29 18:24:08 UTC 2013
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch dfsg-clean
in repository firetray.
commit 29de64e51f2667cca4074c20a3667ed032412c89
Author: foudfou <foudil.newbie+git at gmail.com>
Date: Thu Dec 13 19:11:58 2012 +0100
base the startup event on the first 'before-first-paint'
That lets the windows get well realized before we can hide them
(start_hidden). This is especially true for heavy configurations with numerous
addons (Lightning with multiple remote calendars for instance).
---
src/chrome/content/overlay.js | 12 -----------
src/modules/FiretrayHandler.jsm | 37 ++++++++++++----------------------
src/modules/commons.js | 2 --
src/modules/linux/FiretrayWindow.jsm | 13 +-----------
4 files changed, 14 insertions(+), 50 deletions(-)
diff --git a/src/chrome/content/overlay.js b/src/chrome/content/overlay.js
index 6eb726f..80e7210 100644
--- a/src/chrome/content/overlay.js
+++ b/src/chrome/content/overlay.js
@@ -24,9 +24,6 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
ftlog.debug("ONLOAD"); firetray.Handler.dumpWindows();
this.winId = firetray.Handler.registerWindow(win);
- win.setTimeout(firetrayChrome.startHiddenMaybe,
- FIRETRAY_DELAY_STARTUP_HIDE_MILLISECONDS,
- this.winId);
win.addEventListener('close', firetrayChrome.onClose, true);
@@ -69,15 +66,6 @@ var firetrayChrome = { // each new window gets a new firetrayChrome !
firetray.Handler.hideAllWindows();
event && event.preventDefault();
}
- },
-
- startHiddenMaybe: function(winId) {
- ftlog.debug('startHiddenMaybe'+'. appStarted='+firetray.Handler.appStarted);
-
- if (firetray.Utils.prefService.getBoolPref('start_hidden') &&
- !firetray.Handler.appStarted) { // !appStarted for new windows !
- firetray.Handler.startupHideWindow(winId);
- }
}
};
diff --git a/src/modules/FiretrayHandler.jsm b/src/modules/FiretrayHandler.jsm
index 3f0b5bf..463ab41 100644
--- a/src/modules/FiretrayHandler.jsm
+++ b/src/modules/FiretrayHandler.jsm
@@ -43,7 +43,6 @@ firetray.Handler = {
appId: (function(){return Services.appinfo.ID;})(),
appName: (function(){return Services.appinfo.name;})(),
- appStartupTopic: null,
runtimeABI: (function(){return Services.appinfo.XPCOMABI;})(),
runtimeOS: (function(){return Services.appinfo.OS;})(), // "WINNT", "Linux", "Darwin"
addonRootDir: (function(){
@@ -116,9 +115,8 @@ firetray.Handler = {
firetray.Chat.init();
}
- this.appStartupTopic = this.getAppStartupTopic(this.appId);
- firetray.Utils.addObservers(firetray.Handler, [ this.appStartupTopic,
- "xpcom-will-shutdown", "profile-change-teardown" ]);
+ firetray.Utils.addObservers(firetray.Handler,
+ [ "before-first-paint", "xpcom-will-shutdown", "profile-change-teardown" ]);
this.preventWarnOnClose();
@@ -190,18 +188,22 @@ firetray.Handler = {
observe: function(subject, topic, data) {
switch (topic) {
- case "sessionstore-windows-restored":
- case "mail-startup-done":
- case "final-ui-startup": // subject=ChromeWindow
- if (firetray.Handler.appStarted) return; // second TB window issues "mail-startup-done"
- log.debug("RECEIVED: "+topic+", launching timer");
- // sessionstore-windows-restored does not come after the realization of
- // all windows... so we wait a little
+
+ case "before-first-paint":
+ log.debug("before-first-paint: "+subject.baseURI);
+ firetray.Utils.removeObservers(firetray.Handler, [ "before-first-paint" ]);
firetray.Utils.timer(function() {
+
+ if (firetray.Utils.prefService.getBoolPref('start_hidden')) {
+ log.debug("start_hidden");
+ firetray.Handler.hideAllWindows();
+ }
+
firetray.Handler.appStarted = true;
log.debug("*** appStarted ***");
}, FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS, Ci.nsITimer.TYPE_ONE_SHOT);
break;
+
case "xpcom-will-shutdown":
log.debug("xpcom-will-shutdown");
this.shutdown();
@@ -225,18 +227,6 @@ firetray.Handler = {
}
},
- getAppStartupTopic: function(id) {
- switch (id) {
- case FIRETRAY_FIREFOX_ID:
- case FIRETRAY_SEAMONKEY_ID:
- return 'sessionstore-windows-restored';
- case FIRETRAY_THUNDERBIRD_ID:
- return 'mail-startup-done';
- default:
- return 'final-ui-startup';
- }
- },
-
// these get overridden in OS-specific Icon/Window handlers
setIconImageDefault: function() {},
setIconImageNewMail: function() {},
@@ -249,7 +239,6 @@ firetray.Handler = {
unregisterWindow: function(win) {},
getWindowIdFromChromeWindow: function(win) {},
hideWindow: function(winId) {},
- startupHideWindow: function(winId) {},
showWindow: function(winId) {},
showHideAllWindows: function() {},
activateLastWindow: function(gtkStatusIcon, gdkEvent, userData) {},
diff --git a/src/modules/commons.js b/src/modules/commons.js
index a15e7df..7de2854 100644
--- a/src/modules/commons.js
+++ b/src/modules/commons.js
@@ -11,7 +11,6 @@ var EXPORTED_SYMBOLS =
"FIRETRAY_IM_STATUS_AVAILABLE", "FIRETRAY_IM_STATUS_AWAY",
"FIRETRAY_IM_STATUS_BUSY", "FIRETRAY_IM_STATUS_OFFLINE",
"FIRETRAY_ACCOUNT_SERVER_TYPE_IM",
- "FIRETRAY_DELAY_STARTUP_HIDE_MILLISECONDS",
"FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS",
"FIRETRAY_DELAY_NOWAIT_MILLISECONDS",
"FIRETRAY_DELAY_PREF_CLEANING_MILLISECONDS",
@@ -49,7 +48,6 @@ const FIRETRAY_IM_STATUS_OFFLINE = "user-offline";
const FIRETRAY_ACCOUNT_SERVER_TYPE_IM = "im";
const FIRETRAY_DELAY_BROWSER_STARTUP_MILLISECONDS = 500;
-const FIRETRAY_DELAY_STARTUP_HIDE_MILLISECONDS = 400;
const FIRETRAY_DELAY_NOWAIT_MILLISECONDS = 0;
const FIRETRAY_DELAY_PREF_CLEANING_MILLISECONDS = 15*60*1000;
diff --git a/src/modules/linux/FiretrayWindow.jsm b/src/modules/linux/FiretrayWindow.jsm
index a2b6e48..06b4556 100644
--- a/src/modules/linux/FiretrayWindow.jsm
+++ b/src/modules/linux/FiretrayWindow.jsm
@@ -257,16 +257,6 @@ firetray.Window = {
firetray.Handler.showHideIcon();
},
- startupHide: function(xid) {
- log.debug('startupHide: '+xid);
-
- firetray.Handler.windows[xid].baseWin.visibility = false;
- firetray.Window.updateVisibility(xid, false);
-
- firetray.PopupMenu.showWindowItem(xid);
- firetray.Handler.showHideIcon();
- },
-
savePositionAndSize: function(xid) {
let gx = {}, gy = {}, gwidth = {}, gheight = {};
firetray.Handler.windows[xid].baseWin.getPositionAndSize(gx, gy, gwidth, gheight);
@@ -533,7 +523,7 @@ firetray.Window = {
case x11.MapNotify:
log.debug("MapNotify");
let win = firetray.Handler.windows[xid];
- if (!win.visible) { // happens when hidden app called from command line
+ if (!win.visible && firetray.Handler.appStarted) { // happens when hidden app called from command line
log.warn("window not visible, correcting visibility");
firetray.Window.updateVisibility(xid, true);
log.debug("visibleWindowsCount="+firetray.Handler.visibleWindowsCount);
@@ -635,7 +625,6 @@ firetray.Handler.unregisterWindow = function(win) {
firetray.Handler.showWindow = firetray.Window.show;
firetray.Handler.hideWindow = firetray.Window.hide;
-firetray.Handler.startupHideWindow = firetray.Window.startupHide;
firetray.Handler.showHideAllWindows = function(gtkStatusIcon, userData) {
log.debug("showHideAllWindows: "+userData);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/firetray.git
More information about the Pkg-mozext-commits
mailing list