diff --git a/mozilla/browser/base/content/browser.js b/mozilla/browser/base/content/browser.js index 4059e59f73b..5b47d837f20 100644 --- a/mozilla/browser/base/content/browser.js +++ b/mozilla/browser/base/content/browser.js @@ -99,6 +99,7 @@ var gProgressCollapseTimer = null; var gPrefService = null; var appCore = null; var gBrowser = null; +var gNavToolbox = null; var gSidebarCommand = ""; // Global variable that holds the nsContextMenu instance. @@ -1029,8 +1030,7 @@ function delayedStartup() SetPageProxyState("invalid"); - var toolbox = document.getElementById("navigator-toolbox"); - toolbox.customizeDone = BrowserToolboxCustomizeDone; + getNavToolbox().customizeDone = BrowserToolboxCustomizeDone; // Set up Sanitize Item gSanitizeListener = new SanitizeListener(); @@ -2279,13 +2279,13 @@ function toggleAffectedChrome(aHide) // (*) menubar // (*) navigation bar // (*) bookmarks toolbar + // (*) tabstrip // (*) browser messages // (*) sidebar // (*) find bar // (*) statusbar - var navToolbox = document.getElementById("navigator-toolbox"); - navToolbox.hidden = aHide; + getNavToolbox().hidden = aHide; if (aHide) { gChromeState = {}; @@ -2293,6 +2293,9 @@ function toggleAffectedChrome(aHide) gChromeState.sidebarOpen = !sidebar.hidden; gSidebarCommand = sidebar.getAttribute("sidebarcommand"); + gChromeState.hadTabStrip = gBrowser.getStripVisibility(); + gBrowser.setStripVisibilityTo(false); + var notificationBox = gBrowser.getNotificationBox(); gChromeState.notificationsOpen = !notificationBox.notificationsHidden; notificationBox.notificationsHidden = aHide; @@ -2305,6 +2308,10 @@ function toggleAffectedChrome(aHide) gFindBar.close(); } else { + if (gChromeState.hadTabStrip) { + gBrowser.setStripVisibilityTo(true); + } + if (gChromeState.notificationsOpen) { gBrowser.getNotificationBox().notificationsHidden = aHide; } @@ -2333,6 +2340,11 @@ function onExitPrintPreview() toggleAffectedChrome(false); } +function getPPBrowser() +{ + return document.getElementById("content"); +} + function getMarkupDocumentViewer() { return gBrowser.markupDocumentViewer; @@ -3049,7 +3061,7 @@ function BrowserCustomizeToolbar() window.openDialog("chrome://global/content/customizeToolbar.xul", "CustomizeToolbar", "chrome,all,dependent", - document.getElementById("navigator-toolbox")); + getNavToolbox()); #endif } @@ -3173,7 +3185,7 @@ var FullScreen = } } - var toolbox = document.getElementById("navigator-toolbox"); + var toolbox = getNavToolbox(); if (aShow) toolbox.removeAttribute("inFullscreen"); else @@ -3872,7 +3884,7 @@ function onViewToolbarsPopupShowing(aEvent) var firstMenuItem = popup.firstChild; - var toolbox = document.getElementById("navigator-toolbox"); + var toolbox = getNavToolbox(); for (i = 0; i < toolbox.childNodes.length; ++i) { var toolbar = toolbox.childNodes[i]; var toolbarName = toolbar.getAttribute("toolbarname"); @@ -3894,7 +3906,7 @@ function onViewToolbarsPopupShowing(aEvent) function onViewToolbarCommand(aEvent) { - var toolbox = document.getElementById("navigator-toolbox"); + var toolbox = getNavToolbox(); var index = aEvent.originalTarget.getAttribute("toolbarindex"); var toolbar = toolbox.childNodes[index]; @@ -4386,7 +4398,6 @@ var contentAreaDNDObserver = { }; -// For extensions function getBrowser() { if (!gBrowser) @@ -4394,6 +4405,13 @@ function getBrowser() return gBrowser; } +function getNavToolbox() +{ + if (!gNavToolbox) + gNavToolbox = document.getElementById("navigator-toolbox"); + return gNavToolbox; +} + function MultiplexHandler(event) { try { var node = event.target; diff --git a/mozilla/toolkit/components/printing/content/printUtils.js b/mozilla/toolkit/components/printing/content/printUtils.js index 030b1f6e551..bdd2823608b 100644 --- a/mozilla/toolkit/components/printing/content/printUtils.js +++ b/mozilla/toolkit/components/printing/content/printUtils.js @@ -39,8 +39,6 @@ # # ***** END LICENSE BLOCK ***** -var XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; - var gPrintSettingsAreGlobal = false; var gSavePrintSettings = false; @@ -88,6 +86,12 @@ var PrintUtils = { } }, + // calling PrintUtils.printPreview() requires that you have three functions + // in the global scope: getPPBrowser(), which returns the browser element in + // the window print preview uses, getNavToolbox(), which returns the element + // (usually the main toolbox element) before which the print preview toolbar + // should be inserted, and getWebNavigation(), which returns the document's + // nsIWebNavigation object printPreview: function (aEnterPPCallback, aExitPPCallback, aWindow) { // if we're already in PP mode, don't set the callbacks; chances @@ -98,10 +102,12 @@ var PrintUtils = { this._onEnterPP = aEnterPPCallback; this._onExitPP = aExitPPCallback; } else { - // hide the toolbar here -- it will be shown in + // collapse the browser here -- it will be shown in // onEnterPrintPreview; this forces a reflow which fixes display // issues in bug 267422. - pptoolbar.hidden = true; + var browser = getPPBrowser(); + if (browser) + browser.collapsed = true; } this._webProgressPP = {}; @@ -122,7 +128,7 @@ var PrintUtils = { PPROMPTSVC.showProgress(this, webBrowserPrint, printSettings, this._obsPP, false, this._webProgressPP, ppParams, notifyOnOpen); if (ppParams.value) { - var webNav = getBrowser().webNavigation; + var webNav = getWebNavigation(); ppParams.value.docTitle = webNav.document.title; ppParams.value.docURL = webNav.currentURI.spec; } @@ -183,7 +189,6 @@ var PrintUtils = { return printSettings; }, - _chromeState: {}, _closeHandlerPP: null, _webProgressPP: null, _onEnterPP: null, @@ -223,25 +228,22 @@ var PrintUtils = { var printPreviewTB = document.getElementById("print-preview-toolbar"); if (printPreviewTB) { printPreviewTB.updateToolbar(); - printPreviewTB.hidden = false; + var browser = getPPBrowser(); + if (browser) + browser.collapsed = false; return; } // show the toolbar after we go into print preview mode so // that we can initialize the toolbar with total num pages + var XUL_NS = + "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"; printPreviewTB = document.createElementNS(XUL_NS, "toolbar"); printPreviewTB.setAttribute("printpreview", true); printPreviewTB.setAttribute("id", "print-preview-toolbar"); -#ifdef MOZ_PHOENIX - getBrowser().parentNode.insertBefore(printPreviewTB, getBrowser()); - - // Tab browser... - if ("getStripVisibility" in getBrowser()) { - this._chromeState.hadTabStrip = getBrowser().getStripVisibility(); - getBrowser().setStripVisibilityTo(false); - } -#endif + var navToolbox = getNavToolbox(); + navToolbox.parentNode.insertBefore(printPreviewTB, navToolbox); // copy the window close handler if (document.documentElement.hasAttribute("onclose")) @@ -267,24 +269,17 @@ var PrintUtils = { { window.removeEventListener("keypress", this.onKeyPressPP, true); -#ifdef MOZ_THUNDERBIRD - BrowserExitPrintPreview(); // make the traditional call..don't do any of the inline toolbar browser stuff - return; -#endif - // restore the old close handler document.documentElement.setAttribute("onclose", this._closeHandlerPP); this._closeHandlerPP = null; - if ("getStripVisibility" in getBrowser()) - getBrowser().setStripVisibilityTo(this._chromeState.hadTabStrip); - var webBrowserPrint = this.getWebBrowserPrint(aWindow); webBrowserPrint.exitPrintPreview(); // remove the print preview toolbar + var navToolbox = getNavToolbox(); var printPreviewTB = document.getElementById("print-preview-toolbar"); - getBrowser().parentNode.removeChild(printPreviewTB); + navToolbox.parentNode.removeChild(printPreviewTB); var contentWindow = aWindow || window.content; contentWindow.focus(); diff --git a/mozilla/toolkit/components/viewsource/content/viewSource.js b/mozilla/toolkit/components/viewsource/content/viewSource.js index 6243e8b7195..6277484f27b 100644 --- a/mozilla/toolkit/components/viewsource/content/viewSource.js +++ b/mozilla/toolkit/components/viewsource/content/viewSource.js @@ -272,6 +272,25 @@ function onExitPP() toolbox.hidden = false; } +function getPPBrowser() +{ + return document.getElementById("content"); +} + +function getNavToolbox() +{ + return document.getElementById("appcontent"); +} + +function getWebNavigation() +{ + try { + return gBrowser.webNavigation; + } catch (e) { + return null; + } +} + function ViewSourceGoToLine() { var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]