diff --git a/mozilla/suite/browser/navigator.js b/mozilla/suite/browser/navigator.js
index dd71c0abe59..037c4c7575c 100644
--- a/mozilla/suite/browser/navigator.js
+++ b/mozilla/suite/browser/navigator.js
@@ -898,19 +898,38 @@ function BrowserReloadSkipCache()
return BrowserReloadWithFlags(reloadFlags);
}
-function BrowserHome()
+function BrowserHome(aEvent)
{
+ var tab;
var homePage = getHomePage();
- if (homePage.length == 1) {
- loadURI(homePage[0]);
- } else {
- var URIs = [];
- for (var i in homePage)
- URIs.push({URI: homePage[i]});
+ var target = BookmarksUtils.getBrowserTargetFromEvent(aEvent);
- var tab = gBrowser.loadGroup(URIs);
- if (!pref.getBoolPref("browser.tabs.loadInBackground"))
- gBrowser.selectedTab = tab;
+ if (homePage.length == 1) {
+ switch (target) {
+ case "current":
+ loadURI(homePage[0]);
+ break;
+ case "tab":
+ tab = gBrowser.addTab(homePage[0]);
+ if (!BookmarksUtils.shouldLoadTabInBackground(aEvent))
+ gBrowser.selectedTab = tab;
+ break;
+ case "window":
+ openDialog(getBrowserURL(), "_blank", "chrome,all,dialog=no", homePage[0]);
+ }
+ } else {
+ if (target == "window")
+ openDialog(getBrowserURL(), "_blank", "chrome,all,dialog=no", homePage.join("\n"));
+ else {
+ var URIs = [];
+ for (var i in homePage)
+ URIs.push({URI: homePage[i]});
+
+ tab = gBrowser.loadGroup(URIs);
+
+ if (!BookmarksUtils.shouldLoadTabInBackground(aEvent))
+ gBrowser.selectedTab = tab;
+ }
}
}
diff --git a/mozilla/suite/browser/navigator.xul b/mozilla/suite/browser/navigator.xul
index ce028005fcc..e5ea57f80b7 100644
--- a/mozilla/suite/browser/navigator.xul
+++ b/mozilla/suite/browser/navigator.xul
@@ -272,7 +272,8 @@
-
+