From be08a4ecb5fe50c850b18594df70fb67e1a5ccdf Mon Sep 17 00:00:00 2001 From: "ben%bengoodger.com" Date: Sun, 3 Oct 2004 21:22:30 +0000 Subject: [PATCH] 258892 - uninstalling the current theme breaks the browser, revert to default in this case git-svn-id: svn://10.0.0.236/branches/AVIARY_1_0_20040515_BRANCH@163169 18797224-902f-48f8-a5cc-f745e15eee43 --- .../mozapps/extensions/content/extensions.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/mozilla/toolkit/mozapps/extensions/content/extensions.js b/mozilla/toolkit/mozapps/extensions/content/extensions.js index 34cf0a257a5..3d1742015fd 100644 --- a/mozilla/toolkit/mozapps/extensions/content/extensions.js +++ b/mozilla/toolkit/mozapps/extensions/content/extensions.js @@ -657,6 +657,12 @@ var gExtensionsViewController = { case "cmd_homepage": return (selectedItem && selectedItem.getAttribute("homepageURL") != ""); case "cmd_uninstall": + if (gWindowState != "extensions") { + // uninstall is only available if the selected item isn't the + // default theme. + return (selectedItem && + selectedItem.getAttribute("internalName") != KEY_DEFAULT_THEME); + } return selectedItem && selectedItem.getAttribute("locked") != "true"; case "cmd_update": return true; @@ -822,8 +828,17 @@ var gExtensionsViewController = { if (gWindowState == "extensions") gExtensionManager.uninstallExtension(stripPrefix(selectedID, gItemType)); - else if (gWindowState == "themes") + else if (gWindowState == "themes") { + // If the theme being uninstalled is the current theme, we need to reselect + // the default. + var pref = Components.classes["@mozilla.org/preferences-service;1"] + .getService(Components.interfaces.nsIPrefBranch); + var currentTheme = pref.getCharPref(PREF_GENERAL_SKINS_SELECTEDSKIN); + if (aSelectedItem.getAttribute("internalName") == currentTheme) + this.cmd_useTheme(document.getElementById("urn:mozilla:theme:{972ce4c6-7e08-4474-a285-3208198ce6fd}")); gExtensionManager.uninstallTheme(stripPrefix(selectedID, gItemType)); + + } gExtensionsView.selected = document.getElementById(nextElement); },