127784 - require restart on theme switch. r=hewitt sr=ben a=dbaron

git-svn-id: svn://10.0.0.236/trunk@211122 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
blakeross%telocity.com
2006-09-14 06:03:38 +00:00
parent d6a7cd27f2
commit e9f056a26d
4 changed files with 67 additions and 37 deletions

View File

@@ -1377,7 +1377,9 @@ function applyTheme(themeName)
catch(e) {
}
var str;
var str = Components.classes["@mozilla.org/supports-wstring;1"]
.createInstance(Components.interfaces.nsISupportsWString);
var promptService = Components.classes["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
if (oldTheme) {
var title = gNavigatorBundle.getString("oldthemetitle");
@@ -1391,8 +1393,7 @@ function applyTheme(themeName)
chromeRegistry.uninstallSkin( name, true );
// XXX - this sucks and should only be temporary.
str = Components.classes["@mozilla.org/supports-wstring;1"]
.createInstance(Components.interfaces.nsISupportsWString);
str.data = true;
pref.setComplexValue("general.skins.removelist." + name,
Components.interfaces.nsISupportsWString, str);
@@ -1404,10 +1405,19 @@ function applyTheme(themeName)
return;
}
chromeRegistry.selectSkin(name, true);
chromeRegistry.refreshSkins();
}
// XXX XXX BAD BAD BAD BAD !! XXX XXX
// we STILL haven't fixed editor skin switch problems
// hacking around it yet again
str.data = themeName.getAttribute("name");
pref.setComplexValue("general.skins.selectedSkin", Components.interfaces.nsISupportsWString, str);
if (promptService) {
var dialogTitle = gNavigatorBundle.getString("switchskinstitle");
var brandName = gBrandBundle.getString("brandShortName");
var msg = gNavigatorBundle.getFormattedString("switchskins", [brandName]);
promptService.alert(window, dialogTitle, msg);
}
}
function getNewThemes()
{

View File

@@ -257,7 +257,7 @@ Contributor(s): ______________________________________. -->
datasources="rdf:bookmarks rdf:files rdf:localsearch rdf:internetsearch"
ref="NC:BookmarksRoot" container="true" flags="dont-test-empty"
oncommand="OpenBookmarkURL(event.target,document.getElementById('BookmarksMenu').database)"
ondragover="nsDragAndDrop.dragOver(event, bookmarksButtonObserver);"
ondragover="nsDragAndDrop.dragOver(event, folderObserver);"
template="bookmarksMenuTemplate">
<menupopup onpopuphiding="gDidOpen = false;"
onpopupshowing="checkBookmarksMenuTemplateBuilder();"
@@ -309,8 +309,12 @@ Contributor(s): ______________________________________. -->
validate="never"
rdf:type="http://home.netscape.com/NC-rdf#Folder"
uri="rdf:*" label="rdf:http://home.netscape.com/NC-rdf#Name"
ondraggesture="if (!event.altKey) { event.preventBubble(); return false; }">
<menupopup>
ondraggesture="if (!event.altKey) { event.preventBubble(); return false; }"
ondragover="nsDragAndDrop.dragOver(event, folderObserver);">
<menupopup
ondragdrop="nsDragAndDrop.drop(event, menuDNDObserver); event.preventBubble();"
ondragexit="nsDragAndDrop.dragExit(event, menuDNDObserver); event.preventBubble();"
ondragover="nsDragAndDrop.dragOver(event, menuDNDObserver); event.preventBubble();">
<menuitem label="&emptyItem.label;" disabled="true"/>
</menupopup>
</toolbarbutton>
@@ -320,9 +324,13 @@ Contributor(s): ______________________________________. -->
<toolbarbutton type="menu" class="bookmark-item" uri="rdf:*" editable="true"
rdf:type="http://home.netscape.com/NC-rdf#Folder"
label="rdf:http://home.netscape.com/NC-rdf#Name"
image="rdf:http://home.netscape.com/NC-rdf#Icon"
validate="never"
ondraggesture="if (!event.altKey) { event.preventBubble(); return false; }">
<menupopup ondraggesture="nsDragAndDrop.startDrag(event, personalToolbarObserver);"/>
ondraggesture="if (!event.altKey) { event.preventBubble(); return false; }"
ondragover="nsDragAndDrop.dragOver(event, folderObserver);">
<menupopup ondragdrop="nsDragAndDrop.drop(event, menuDNDObserver); event.preventBubble();"
ondragexit="nsDragAndDrop.dragExit(event, menuDNDObserver); event.preventBubble();"
ondragover="nsDragAndDrop.dragOver(event, menuDNDObserver); event.preventBubble();"/>
</toolbarbutton>
</rule>
@@ -338,8 +346,12 @@ Contributor(s): ______________________________________. -->
<rule iscontainer="true" isempty="true"
rdf:type="http://home.netscape.com/NC-rdf#Folder">
<menupopup>
<menupopup
ondragdrop="nsDragAndDrop.drop(event, menuDNDObserver); event.preventBubble();"
ondragexit="nsDragAndDrop.dragExit(event, menuDNDObserver); event.preventBubble();"
ondragover="nsDragAndDrop.dragOver(event, menuDNDObserver); event.preventBubble();">
<menu class="menu-iconic bookmark-item" uri="rdf:*"
type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
validate="never"
label="rdf:http://home.netscape.com/NC-rdf#Name">
<menupopup>
@@ -353,8 +365,11 @@ Contributor(s): ______________________________________. -->
</rule>
<rule iscontainer="true">
<menupopup>
<menupopup ondragdrop="nsDragAndDrop.drop(event, menuDNDObserver); event.preventBubble();"
ondragexit="nsDragAndDrop.dragExit(event, menuDNDObserver); event.preventBubble();"
ondragover="nsDragAndDrop.dragOver(event, menuDNDObserver); event.preventBubble();">
<menu class="menu-iconic bookmark-item" uri="rdf:*"
type="rdf:http://www.w3.org/1999/02/22-rdf-syntax-ns#type"
validate="never"
label="rdf:http://home.netscape.com/NC-rdf#Name">
<menupopup/>
@@ -369,7 +384,9 @@ Contributor(s): ______________________________________. -->
</menupopup>
</rule>
<rule>
<menupopup>
<menupopup ondragdrop="nsDragAndDrop.drop(event, menuDNDObserver); event.preventBubble();"
ondragexit="nsDragAndDrop.dragExit(event, menuDNDObserver); event.preventBubble();"
ondragover="nsDragAndDrop.dragOver(event, menuDNDObserver); event.preventBubble();">
<menuitem class="menuitem-iconic bookmark-item" uri="rdf:*"
src="rdf:http://home.netscape.com/NC-rdf#Icon"
validate="never"

View File

@@ -22,6 +22,7 @@
* Contributor(s):
* - Kevin Puetz (puetzk@iastate.edu)
* - Ben Goodger <ben@netscape.com>
* - Blake Ross <blaker@netscape.com>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
@@ -437,15 +438,15 @@ var searchButtonObserver = {
return flavourSet;
}
};
var gDidOpen = false;
var bookmarksButtonObserver = {
var gOpenFolder = null;
var folderObserver = {
onDragOver: function(aEvent, aFlavour, aDragSession)
{
if (aEvent.target.getAttribute("open") == "true")
return false;
aEvent.target.setAttribute("dragover", "true");
if (!gDidOpen) {
aEvent.target.firstChild.showPopup(document.getElementById("bookmarks-button"), -1, -1, "menupopup", "bottomleft", "bottomleft");
gDidOpen = true;
}
aEvent.target.firstChild.showPopup(aEvent.target, -1, -1, "menupopup", "bottomleft", "bottomleft");
return true;
},
getSupportedFlavours: function ()
@@ -463,37 +464,33 @@ function closeOpenMenu()
{
if (gCurrentDragOverMenu && gCurrentTarget.firstChild != gCurrentDragOverMenu) {
if (gCurrentTarget.parentNode != gCurrentDragOverMenu) {
gMenuIsOpen = false;
gCurrentDragOverMenu.hidePopup();
gCurrentDragOverMenu = null;
}
}
}
var gMenuIsOpen = false;
var menuDNDObserver = {
onDragOver: function(aEvent, aFlavour, aDragSession)
{
// if we're a folder just one level deep, open it
var dropPosition = determineDropPosition(aEvent, aEvent.target.parentNode != document.getElementById("bookmarks-button").firstChild);
var isOneLevelDeep = aEvent.target.parentNode.parentNode.getAttribute("open") == "true" && aEvent.target.parentNode.parentNode.localName == "toolbarbutton";
var dropPosition = determineDropPosition(aEvent, !isOneLevelDeep);
gCurrentTarget = aEvent.target;
if (aEvent.target.firstChild && aEvent.target.firstChild.localName == "menupopup") {
if (aEvent.target.parentNode == document.getElementById("bookmarks-button").firstChild) {
if (gCurrentDragOverMenu && gCurrentDragOverMenu != aEvent.target.firstChild) {
if (isOneLevelDeep) {
if (gCurrentDragOverMenu && gCurrentDragOverMenu != aEvent.target.firstChild)
gCurrentDragOverMenu.hidePopup();
gCurrentDragOverMenu = null;
gMenuIsOpen = false;
}
if (!gMenuIsOpen) {
gCurrentDragOverMenu = aEvent.target.firstChild;
if (!gCurrentDragOverMenu) {
aEvent.target.firstChild.showPopup(aEvent.target, -1, -1, "menupopup", "topright, topright");
gMenuIsOpen = true;
gCurrentDragOverMenu = aEvent.target.firstChild;
}
}
else {
aEvent.target.setAttribute("menuactive", "true");
}
}
}
// remove drag attributes from old item once we move to a new item
if (this.mCurrentDragOverItem != aEvent.target) {
if (this.mCurrentDragOverItem) {
@@ -550,7 +547,6 @@ var menuDNDObserver = {
var linkCharset = aDragSession.sourceDocument ? aDragSession.sourceDocument.characterSet : null;
// determine title of link
var linkTitle;
// look it up in bookmarks
var bookmarksDS = RDFUtils.rdf.GetDataSource("rdf:bookmarks");
var nameRes = RDFUtils.getResource(NC_RDF("Name"));
@@ -578,7 +574,8 @@ var menuDNDObserver = {
dropElementRes = RDFUtils.getResource(dropElement);
rdfContainer.Init(childDB, parentContainer);
dropIndex = rdfContainer.IndexOf(dropElementRes);
dropPosition = determineDropPosition(aEvent, aEvent.target.parentNode != document.getElementById("bookmarks-button").firstChild);
var isOneLevelDeep = aEvent.target.parentNode.parentNode.getAttribute("open") == "true" && aEvent.target.parentNode.parentNode.localName == "toolbarbutton";
dropPosition = determineDropPosition(aEvent, !isOneLevelDeep);
switch (dropPosition) {
case DROP_BEFORE:
--dropIndex;
@@ -666,10 +663,12 @@ function findParentContainer(aElement)
return RDFUtils.getResource(box.getAttribute("ref"));
case "menu":
case "menuitem":
var menu = aElement.parentNode.parentNode;
if (menu.getAttribute("type") != "http://home.netscape.com/NC-rdf#Folder")
var parentNode = aElement.parentNode.parentNode;
if (parentNode.getAttribute("type") != NC_RDF("Folder") &&
parentNode.getAttributeNS("http://www.w3.org/1999/02/22-rdf-syntax-ns#", "type") != "http://home.netscape.com/NC-rdf#Folder")
return RDFUtils.getResource("NC:BookmarksRoot");
return RDFUtils.getResource(menu.id);
return RDFUtils.getResource(parentNode.id);
case "treecell":
var treeitem = aElement.parentNode.parentNode.parentNode.parentNode;
var res = treeitem.getAttribute("ref");

View File

@@ -60,3 +60,7 @@ showskinsdescription=true
# e.g. "Search Google for abc"
# DO NOT change the %S order when translate, the first %S must be the search engine name.
searchFor=Search %S for "%S"
# XXX - this sucks and should only be temporary.
switchskins=Theme changes will take effect when you restart %S.
switchskinstitle=Apply Theme