LibWeb: StyleResolver: Keep track of specificity of matched selector

This way it gets easier to compare matches.
This commit is contained in:
Tobias Christiansen 2021-05-24 23:01:24 +02:00 committed by Linus Groh
parent c4588a2cde
commit bf9c5ffb3f
Notes: sideshowbarker 2024-07-18 17:16:25 +09:00
2 changed files with 2 additions and 1 deletions

View file

@ -74,7 +74,7 @@ Vector<MatchingRule> StyleResolver::collect_matching_rules(const DOM::Element& e
size_t selector_index = 0; size_t selector_index = 0;
for (auto& selector : rule.selectors()) { for (auto& selector : rule.selectors()) {
if (SelectorEngine::matches(selector, element)) { if (SelectorEngine::matches(selector, element)) {
matching_rules.append({ rule, style_sheet_index, rule_index, selector_index }); matching_rules.append({ rule, style_sheet_index, rule_index, selector_index, selector.specificity() });
break; break;
} }
++selector_index; ++selector_index;

View file

@ -18,6 +18,7 @@ struct MatchingRule {
size_t style_sheet_index { 0 }; size_t style_sheet_index { 0 };
size_t rule_index { 0 }; size_t rule_index { 0 };
size_t selector_index { 0 }; size_t selector_index { 0 };
u32 specificity { 0 };
}; };
class StyleResolver { class StyleResolver {