mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-21 09:15:35 +00:00
Bug 1228882 - Don't assume that the textnode has changed when checking whether any textnode descendants determine the directionality of a dir=auto ancestor; r=peterv
This commit is contained in:
parent
3fe374d601
commit
a2a9616b23
@ -570,11 +570,12 @@ public:
|
||||
return GetDirectionalityMap(aTextNode)->UpdateAutoDirection(aDir);
|
||||
}
|
||||
|
||||
static void ResetTextNodeDirection(nsINode* aTextNode)
|
||||
static void ResetTextNodeDirection(nsINode* aTextNode,
|
||||
nsINode* aChangedTextNode)
|
||||
{
|
||||
MOZ_ASSERT(aTextNode->HasTextNodeDirectionalityMap(),
|
||||
"Map missing in ResetTextNodeDirection");
|
||||
GetDirectionalityMap(aTextNode)->ResetAutoDirection(aTextNode);
|
||||
GetDirectionalityMap(aTextNode)->ResetAutoDirection(aChangedTextNode);
|
||||
}
|
||||
|
||||
static void EnsureMapIsClearFor(nsINode* aTextNode)
|
||||
@ -681,7 +682,7 @@ WalkDescendantsResetAutoDirection(Element* aElement)
|
||||
}
|
||||
|
||||
if (child->HasTextNodeDirectionalityMap()) {
|
||||
nsTextNodeDirectionalityMap::ResetTextNodeDirection(child);
|
||||
nsTextNodeDirectionalityMap::ResetTextNodeDirection(child, nullptr);
|
||||
nsTextNodeDirectionalityMap::EnsureMapIsClearFor(child);
|
||||
}
|
||||
child = child->GetNextNode(aElement);
|
||||
@ -841,7 +842,7 @@ TextNodeChangedDirection(nsIContent* aTextNode, Directionality aOldDir,
|
||||
// longer does. ResetTextNodeDirection() will re-resolve the
|
||||
// directionality of any elements whose directionality was
|
||||
// determined by this node.
|
||||
nsTextNodeDirectionalityMap::ResetTextNodeDirection(aTextNode);
|
||||
nsTextNodeDirectionalityMap::ResetTextNodeDirection(aTextNode, aTextNode);
|
||||
}
|
||||
} else {
|
||||
// This node has a strong directional character. If it has a
|
||||
@ -888,7 +889,7 @@ ResetDirectionSetByTextNode(nsTextNode* aTextNode)
|
||||
|
||||
Directionality dir = GetDirectionFromText(aTextNode->GetText());
|
||||
if (dir != eDir_NotSet && aTextNode->HasTextNodeDirectionalityMap()) {
|
||||
nsTextNodeDirectionalityMap::ResetTextNodeDirection(aTextNode);
|
||||
nsTextNodeDirectionalityMap::ResetTextNodeDirection(aTextNode, aTextNode);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user