LibWeb: StyleResolver: Keep track of specificity of matched selector
This way it gets easier to compare matches.
This commit is contained in:
parent
c4588a2cde
commit
bf9c5ffb3f
Notes:
sideshowbarker
2024-07-18 17:16:25 +09:00
Author: https://github.com/TobyAsE Commit: https://github.com/SerenityOS/serenity/commit/bf9c5ffb3f8 Pull-request: https://github.com/SerenityOS/serenity/pull/7455 Reviewed-by: https://github.com/linusg
2 changed files with 2 additions and 1 deletions
|
@ -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;
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
Loading…
Add table
Reference in a new issue