diff --git a/.gitignore b/.gitignore index 567609b..a5309e6 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -build/ +build*/ diff --git a/src/modules/linux/FiretrayPopupMenu.jsm b/src/modules/linux/FiretrayPopupMenu.jsm index a592497..aa9771e 100644 --- a/src/modules/linux/FiretrayPopupMenu.jsm +++ b/src/modules/linux/FiretrayPopupMenu.jsm @@ -203,8 +203,7 @@ firetray.PopupMenu = { }, windowItemsHandled: function() { - return (firetray.Handler.inBrowserApp && - firetray.Utils.prefService.getBoolPref('hides_single_window')); + return firetray.Utils.prefService.getBoolPref('hides_single_window'); } }; // firetray.PopupMenu diff --git a/src/modules/linux/FiretrayWindow.jsm b/src/modules/linux/FiretrayWindow.jsm index b5694ee..f3a2b30 100644 --- a/src/modules/linux/FiretrayWindow.jsm +++ b/src/modules/linux/FiretrayWindow.jsm @@ -258,6 +258,16 @@ 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); @@ -489,10 +499,10 @@ firetray.Window = { let title = firetray.Handler.windows[xid].baseWin.title; log.debug("|baseWin.title="+title+"|"); let tailIndex; - if (firetray.Handler.appId === FIRETRAY_APP_DB['seamonkey']['id']) + tailIndex = title.indexOf(" - Mozilla "+firetray.Handler.appName); + if (tailIndex === -1) tailIndex = title.indexOf(" - "+firetray.Handler.appName); - else - tailIndex = title.indexOf(" - Mozilla "+firetray.Handler.appName); + if (tailIndex !== -1) return title.substring(0, tailIndex); else if (title === "Mozilla "+firetray.Handler.appName) @@ -514,25 +524,6 @@ firetray.Window = { } }, - startupFilter: function(xev, gdkEv, data) { - if (!xev) - return gdk.GDK_FILTER_CONTINUE; - - let xany = ctypes.cast(xev, x11.XAnyEvent.ptr); - let xid = xany.contents.window; - - if (xany.contents.type === x11.MapNotify) { - if (firetray.Utils.prefService.getBoolPref('start_hidden')) { - log.debug("start_hidden"); - firetray.Window.hide(xid); - } - gdk.gdk_window_remove_filter(firetray.Handler.gdkWindows.get(xid), - firetray.Handler.windows[xid].startupFilterCb, null); - } - - return gdk.GDK_FILTER_CONTINUE; - }, - filterWindow: function(xev, gdkEv, data) { if (!xev) return gdk.GDK_FILTER_CONTINUE; @@ -580,6 +571,25 @@ firetray.Window = { return gdk.GDK_FILTER_CONTINUE; }, + startupFilter: function(xev, gdkEv, data) { + if (!xev) + return gdk.GDK_FILTER_CONTINUE; + + let xany = ctypes.cast(xev, x11.XAnyEvent.ptr); + let xid = xany.contents.window; + + if (xany.contents.type === x11.MapNotify) { + if (firetray.Utils.prefService.getBoolPref('start_hidden')) { + log.debug("start_hidden"); + firetray.Window.startupHide(xid); + } + gdk.gdk_window_remove_filter(firetray.Handler.gdkWindows.get(xid), + firetray.Handler.windows[xid].startupFilterCb, null); + } + + return gdk.GDK_FILTER_CONTINUE; + }, + showAllWindowsAndActivate: function() { let visibilityRate = firetray.Handler.visibleWindowsCount/firetray.Handler.windowsCount; log.debug("visibilityRate="+visibilityRate);