From a341a6883e2e1468fdb9e64eefd2fd1135e7dcc9 Mon Sep 17 00:00:00 2001 From: "bugzilla%standard8.demon.co.uk" Date: Tue, 27 Mar 2007 17:59:10 +0000 Subject: [PATCH] Bug 361303 Showing about as a dialog doesn't work in suiterunner. p=Neuos ,r=CTho,sr=Neil git-svn-id: svn://10.0.0.236/trunk@222468 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/suite/browser/browser-prefs.js | 3 -- mozilla/suite/common/utilityOverlay.js | 38 ++++++++++++++++--------- mozilla/suite/common/utilityOverlay.xul | 4 +-- mozilla/xpfe/bootstrap/browser-prefs.js | 3 -- 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/mozilla/suite/browser/browser-prefs.js b/mozilla/suite/browser/browser-prefs.js index 91d278d91ab..4eb356450b1 100644 --- a/mozilla/suite/browser/browser-prefs.js +++ b/mozilla/suite/browser/browser-prefs.js @@ -88,9 +88,6 @@ pref("browser.toolbars.showbutton.home", true); pref("browser.toolbars.showbutton.print", true); pref("browser.toolbars.showbutton.search", true); -// Dialog modality issues -pref("browser.show_about_as_stupid_modal_window", false); - pref("browser.download.progressDnldDialog.keepAlive", true); // keep the dnload progress dialog up after dnload is complete pref("browser.download.progressDnldDialog.enable_launch_reveal_buttons", true); pref("browser.download.progressDnlgDialog.dontAskForLaunch", false); diff --git a/mozilla/suite/common/utilityOverlay.js b/mozilla/suite/common/utilityOverlay.js index 175911f0809..4bb50462505 100644 --- a/mozilla/suite/common/utilityOverlay.js +++ b/mozilla/suite/common/utilityOverlay.js @@ -354,21 +354,33 @@ function openTopWin( url ) return window.openDialog( getBrowserURL(), "_blank", "chrome,all,dialog=no", url ); } -function goAboutDialog() +function goAbout(aProtocol) { - var defaultAboutState = false; - try { - var pref = Components.classes["@mozilla.org/preferences-service;1"] - .getService(Components.interfaces.nsIPrefBranch); - defaultAboutState = pref.getBoolPref("browser.show_about_as_stupid_modal_window"); + const kExistingWindow = Components.interfaces.nsIBrowserDOMWindow.OPEN_CURRENTWINDOW; + const kNewWindow = Components.interfaces.nsIBrowserDOMWindow.OPEN_NEWWINDOW; + + var browserWin; + var url = "about:" + (aProtocol || ""); + var pref = Components.classes["@mozilla.org/preferences-service;1"] + .getService(Components.interfaces.nsIPrefBranch); + var defaultAboutState = pref.getIntPref("browser.link.open_external"); + + if (defaultAboutState != kNewWindow) + browserWin = getTopWin(); + + if (!browserWin) + window.openDialog(getBrowserURL(), "_blank", "chrome,all,dialog=no", url); + else { + if (defaultAboutState == kExistingWindow) + browserWin.loadURI(url); + else { + // new tab + var browser = browserWin.getBrowser(); + var newTab = browser.addTab(url); + browser.selectedTab = newTab; + } + browserWin.content.focus(); } - catch(e) { - defaultAboutState = false; - } - if( defaultAboutState ) - window.openDialog("chrome://global/content/about.xul", "About", "modal,chrome,resizable=yes,height=450,width=550"); - else - window.openDialog( getBrowserURL(), "_blank", "chrome,all,dialog=no", 'about:' ); } function goReleaseNotes() diff --git a/mozilla/suite/common/utilityOverlay.xul b/mozilla/suite/common/utilityOverlay.xul index db6dfe99b87..66ed441f81f 100644 --- a/mozilla/suite/common/utilityOverlay.xul +++ b/mozilla/suite/common/utilityOverlay.xul @@ -328,11 +328,11 @@ accesskey="&aboutCommPluginsCmd.accesskey;" label="&aboutCommPluginsCmd.label;" id="pluginInfo" - oncommand="openTopWin('about:plugins')"/> + oncommand="goAbout('plugins');"/> + oncommand="goAbout();"/> diff --git a/mozilla/xpfe/bootstrap/browser-prefs.js b/mozilla/xpfe/bootstrap/browser-prefs.js index 3087bc3dbfe..5a7d7c38375 100644 --- a/mozilla/xpfe/bootstrap/browser-prefs.js +++ b/mozilla/xpfe/bootstrap/browser-prefs.js @@ -87,9 +87,6 @@ pref("browser.toolbars.showbutton.home", true); pref("browser.toolbars.showbutton.print", true); pref("browser.toolbars.showbutton.search", true); -// Dialog modality issues -pref("browser.show_about_as_stupid_modal_window", false); - pref("browser.download.progressDnldDialog.keepAlive", true); // keep the dnload progress dialog up after dnload is complete pref("browser.download.progressDnldDialog.enable_launch_reveal_buttons", true); pref("browser.download.progressDnlgDialog.dontAskForLaunch", false);