Make nsXULElement::GetChildNodes use the same (live) node list that

nsGenericElement uses.  Bug 240633, r+sr=jst on the C++ changes, r=neil, sr=jst
on the JS changes.
This commit is contained in:
bzbarsky%mit.edu 2006-07-27 14:57:49 +00:00
Родитель afe33b46ed
Коммит cf68b70e83
1 изменённых файлов: 12 добавлений и 12 удалений

Просмотреть файл

@ -42,10 +42,10 @@ function fillContextMenu(name, treeName)
if (!popupNode) return(false); if (!popupNode) return(false);
// remove the menu node (which tosses all of its kids); // remove the menu node (which tosses all of its kids);
// do this in case any old command nodes are hanging around // do this in case any old command nodes are hanging around
while (popupNode.childNodes.length) while (popupNode.hasChildNodes())
{ {
popupNode.removeChild(popupNode.childNodes[0]); popupNode.removeChild(popupNode.lastChild);
} }
var treeNode = document.getElementById(treeName); var treeNode = document.getElementById(treeName);
if (!treeNode) return(false); if (!treeNode) return(false);
@ -185,17 +185,17 @@ function fillContextMenu(name, treeName)
} }
// strip off leading/trailing menuseparators // strip off leading/trailing menuseparators
while (popupNode.childNodes.length > 0) while (popupNode.hasChildNodes())
{ {
if (popupNode.childNodes[0].tagName != "menuseparator") if (popupNode.firstChild.tagName != "menuseparator")
break; break;
popupNode.removeChild(popupNode.childNodes[0]); popupNode.removeChild(popupNode.firstChild);
} }
while (popupNode.childNodes.length > 0) while (popupNode.hasChildNodes())
{ {
if (popupNode.childNodes[popupNode.childNodes.length - 1].tagName != "menuseparator") if (popupNode.lastChild.tagName != "menuseparator")
break; break;
popupNode.removeChild(popupNode.childNodes[popupNode.childNodes.length - 1]); popupNode.removeChild(popupNode.lastChild);
} }
var searchMode = 0; var searchMode = 0;
@ -203,9 +203,9 @@ function fillContextMenu(name, treeName)
if (pref && bundle) if (pref && bundle)
{ {
// then add a menu separator (if necessary) // then add a menu separator (if necessary)
if (popupNode.childNodes.length > 0) if (popupNode.hasChildNodes())
{ {
if (popupNode.childNodes[popupNode.childNodes.length - 1].tagName != "menuseparator") if (popupNode.lastChild.tagName != "menuseparator")
{ {
var menuSep = document.createElement("menuseparator"); var menuSep = document.createElement("menuseparator");
popupNode.appendChild(menuSep); popupNode.appendChild(menuSep);