mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-26 01:35:08 +02:00
LibWeb: Make :hover invalidation logic reusable for all pseudo classes
We achieve this by keeping track of all checked pseudo class selectors in the SelectorEngine code. We also give StyleComputer per-pseudo-class rule caches.
This commit is contained in:
committed by
Andreas Kling
parent
ed35f9e7c2
commit
e1777f6e79
Notes:
github-actions[bot]
2025-04-17 17:47:22 +00:00
Author: https://github.com/awesomekling Commit: https://github.com/LadybirdBrowser/ladybird/commit/e1777f6e79a Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4388
@@ -60,6 +60,7 @@ enum class PseudoClass {
|
||||
member_generator.appendln(" @name:titlecase@,");
|
||||
});
|
||||
generator.append(R"~~~(
|
||||
__Count,
|
||||
};
|
||||
|
||||
Optional<PseudoClass> pseudo_class_from_string(StringView);
|
||||
@@ -123,6 +124,8 @@ Optional<PseudoClass> pseudo_class_from_string(StringView string)
|
||||
StringView pseudo_class_name(PseudoClass pseudo_class)
|
||||
{
|
||||
switch (pseudo_class) {
|
||||
case PseudoClass::__Count:
|
||||
VERIFY_NOT_REACHED();
|
||||
)~~~");
|
||||
|
||||
pseudo_classes_data.for_each_member([&](auto& name, auto&) {
|
||||
@@ -144,6 +147,8 @@ StringView pseudo_class_name(PseudoClass pseudo_class)
|
||||
PseudoClassMetadata pseudo_class_metadata(PseudoClass pseudo_class)
|
||||
{
|
||||
switch (pseudo_class) {
|
||||
case PseudoClass::__Count:
|
||||
VERIFY_NOT_REACHED();
|
||||
)~~~");
|
||||
|
||||
pseudo_classes_data.for_each_member([&](auto& name, JsonValue const& value) {
|
||||
|
||||
Reference in New Issue
Block a user