mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-05 15:28:39 +09:00
Issue #2137 - Part 3: Don't always use the internal pseudo-class for handling negations
This commit is contained in:
parent
3bb3c193d0
commit
b257a71cce
1 changed files with 15 additions and 5 deletions
|
|
@ -6642,11 +6642,21 @@ CSSParserImpl::ParsePseudoClassWithSelectorListArg(nsCSSSelector& aSelector,
|
|||
while (negations->mNegations) {
|
||||
negations = negations->mNegations;
|
||||
}
|
||||
// XXX: Use a special internal-only pseudo-class to handle selector lists.
|
||||
// TODO: This should only happen if we don't have a simple selector.
|
||||
nsCSSSelector* newSel = new nsCSSSelector();
|
||||
newSel->AddPseudoClass(CSSPseudoClassType::mozAnyPrivate, slist.forget());
|
||||
negations->mNegations = newSel;
|
||||
// XXX: Use a special internal-only pseudo-class to handle selector lists
|
||||
// if we have: (a) a complex selector, (b) nested negation pseudo-class,
|
||||
// or (c) more than one selector argument in the list.
|
||||
if (slist->mNext ||
|
||||
slist->mSelectors->mNext ||
|
||||
slist->mSelectors->mNegations) {
|
||||
nsCSSSelector* newSel = new nsCSSSelector();
|
||||
newSel->AddPseudoClass(CSSPseudoClassType::mozAnyPrivate,
|
||||
slist.forget());
|
||||
negations->mNegations = newSel;
|
||||
} else {
|
||||
// Otherwise, steal the first selector and add it directly to the
|
||||
// end of aSelector.mNegations.
|
||||
negations->mNegations = (slist.forget())->mSelectors;
|
||||
}
|
||||
} else {
|
||||
// Add the pseudo with the selector list parameter
|
||||
aSelector.AddPseudoClass(aType, slist.forget());
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue