mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-21 02:08:12 +03:00
LibWeb: Use property_accepts_value() for parsing text-decoration
This commit is contained in:
parent
4bc9b9eaaa
commit
f574f538d2
Notes:
sideshowbarker
2024-07-18 03:32:00 +09:00
Author: https://github.com/AtkinsSJ Commit: https://github.com/SerenityOS/serenity/commit/f574f538d25 Pull-request: https://github.com/SerenityOS/serenity/pull/10188
@ -2447,32 +2447,6 @@ RefPtr<StyleValue> Parser::parse_overflow_value(ParsingContext const& context, V
|
||||
|
||||
RefPtr<StyleValue> Parser::parse_text_decoration_value(ParsingContext const& context, Vector<StyleComponentValueRule> const& component_values)
|
||||
{
|
||||
auto is_text_decoration_line = [](StyleValue const& value) -> bool {
|
||||
switch (value.to_identifier()) {
|
||||
case ValueID::None:
|
||||
case ValueID::Underline:
|
||||
case ValueID::Overline:
|
||||
case ValueID::LineThrough:
|
||||
case ValueID::Blink:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
auto is_text_decoration_style = [](StyleValue const& value) -> bool {
|
||||
switch (value.to_identifier()) {
|
||||
case ValueID::Solid:
|
||||
case ValueID::Double:
|
||||
case ValueID::Dotted:
|
||||
case ValueID::Dashed:
|
||||
case ValueID::Wavy:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
if (component_values.size() > 3)
|
||||
return nullptr;
|
||||
|
||||
@ -2486,19 +2460,19 @@ RefPtr<StyleValue> Parser::parse_text_decoration_value(ParsingContext const& con
|
||||
if (!value)
|
||||
return nullptr;
|
||||
|
||||
if (value->is_color()) {
|
||||
if (property_accepts_value(PropertyID::TextDecorationColor, *value)) {
|
||||
if (decoration_color)
|
||||
return nullptr;
|
||||
decoration_color = value.release_nonnull();
|
||||
continue;
|
||||
}
|
||||
if (is_text_decoration_line(*value)) {
|
||||
if (property_accepts_value(PropertyID::TextDecorationLine, *value)) {
|
||||
if (decoration_line)
|
||||
return nullptr;
|
||||
decoration_line = value.release_nonnull();
|
||||
continue;
|
||||
}
|
||||
if (is_text_decoration_style(*value)) {
|
||||
if (property_accepts_value(PropertyID::TextDecorationStyle, *value)) {
|
||||
if (decoration_style)
|
||||
return nullptr;
|
||||
decoration_style = value.release_nonnull();
|
||||
|
Loading…
Reference in New Issue
Block a user