From ca0cb7e6faea532c2f36b63ed54adebc901ad0a7 Mon Sep 17 00:00:00 2001 From: "steffen.wilberg%web.de" Date: Thu, 28 Apr 2005 21:49:46 +0000 Subject: [PATCH] Bug 284081: When software install (xpinstall.enabled) is disabled, clicking 'Edit Options' on the message bar opens an empty window. r=mconnor, a=asa git-svn-id: svn://10.0.0.236/trunk@172835 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/browser/base/content/browser.js | 11 +---------- .../browser/base/content/utilityOverlay.js | 15 ++++++++++----- .../toolkit/content/widgets/preferences.xml | 19 +++++++++++++------ 3 files changed, 24 insertions(+), 21 deletions(-) diff --git a/mozilla/browser/base/content/browser.js b/mozilla/browser/base/content/browser.js index 05c698c6696..50e5263dbef 100644 --- a/mozilla/browser/base/content/browser.js +++ b/mozilla/browser/base/content/browser.js @@ -482,16 +482,7 @@ const gXPInstallObserver = { } break; case "xpinstall-install-edit-prefs": - wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] - .getService(Components.interfaces.nsIWindowMediator); - var optionsWindow = wm.getMostRecentWindow("Browser:Options"); - if (optionsWindow) { - optionsWindow.focus(); - optionsWindow.switchPage("catFeaturesbutton"); - } - else - openDialog("chrome://browser/content/pref/pref.xul", "PrefWindow", - "chrome,titlebar,resizable,modal", "catFeaturesbutton"); + openPreferences("paneContent"); tabbrowser = getBrowser(); tabbrowser.hideMessage(tabbrowser.selectedBrowser, "top"); break; diff --git a/mozilla/browser/base/content/utilityOverlay.js b/mozilla/browser/base/content/utilityOverlay.js index 6ebf9542a59..6b04bca9789 100644 --- a/mozilla/browser/base/content/utilityOverlay.js +++ b/mozilla/browser/base/content/utilityOverlay.js @@ -405,7 +405,7 @@ function openAboutDialog() #endif } -function openPreferences() +function openPreferences(paneID) { var instantApply = getBoolPref("browser.preferences.instantApply", false); var features = "chrome,titlebar,toolbar,centerscreen" + (instantApply ? ",dialog=no" : ",modal"); @@ -413,11 +413,16 @@ function openPreferences() var wm = Components.classes["@mozilla.org/appshell/window-mediator;1"] .getService(Components.interfaces.nsIWindowMediator); var win = wm.getMostRecentWindow("Browser:Preferences"); - if (win) + if (win) { win.focus(); - else - openDialog("chrome://browser/content/preferences/preferences.xul", - "Preferences", features); + if (paneID) { + var pane = win.document.getElementById(paneID); + win.document.documentElement.showPane(pane); + } + } + else + openDialog("chrome://browser/content/preferences/preferences.xul", + "Preferences", features, paneID); } function getUILink(item) diff --git a/mozilla/toolkit/content/widgets/preferences.xml b/mozilla/toolkit/content/widgets/preferences.xml index ca994e754a6..ea11a1a05e5 100644 --- a/mozilla/toolkit/content/widgets/preferences.xml +++ b/mozilla/toolkit/content/widgets/preferences.xml @@ -496,18 +496,24 @@ keyClose.parentNode.removeChild(keyClose); } var panes = this.preferencePanes; - var lastPane = this.lastSelected ? document.getElementById(this.lastSelected) : panes[0]; + + var paneToLoad; + if ("arguments" in window && window.arguments[0]) + paneToLoad = document.getElementById(window.arguments[0]); + else if (this.lastSelected) + paneToLoad = document.getElementById(this.lastSelected); + else + paneToLoad = panes[0]; + for (var i = 0; i < panes.length; ++i) { - var button = this._makePaneButton(panes[i]); - if (lastPane == panes[i]) - this._selector.selectedItem = button; + this._makePaneButton(panes[i]); if (panes[i].loaded) { // Inline pane content, fire load event to force initialization. this._fireEvent("paneload", panes[i]); } } - this.showPane(lastPane); - + this.showPane(paneToLoad); + if (panes.length == 1) this._selector.setAttribute("collapsed", "true"); ]]> @@ -557,6 +563,7 @@