mirror of
https://github.com/zebrajr/ladybird.git
synced 2025-12-06 00:19:53 +01:00
LibWeb: Handle Auto resolution within Page::preferred_color_scheme
Handling this here means we don't have to it within individual callers
This commit is contained in:
parent
a19a6deaa4
commit
e0e00220fe
|
|
@ -370,9 +370,8 @@ Optional<CSS::MediaFeatureValue> Window::query_media_feature(CSS::MediaFeatureID
|
|||
return CSS::MediaFeatureValue(CSS::Keyword::Light);
|
||||
case CSS::PreferredColorScheme::Dark:
|
||||
return CSS::MediaFeatureValue(CSS::Keyword::Dark);
|
||||
case CSS::PreferredColorScheme::Auto:
|
||||
default:
|
||||
return CSS::MediaFeatureValue(page().palette().is_dark() ? CSS::Keyword::Dark : CSS::Keyword::Light);
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
}
|
||||
case CSS::MediaFeatureID::PrefersContrast:
|
||||
|
|
|
|||
|
|
@ -375,12 +375,7 @@ void NodeWithStyle::apply_style(CSS::ComputedProperties const& computed_style)
|
|||
auto& computed_values = mutable_computed_values();
|
||||
|
||||
// NOTE: color-scheme must be set first to ensure system colors can be resolved correctly.
|
||||
auto preferred_color_scheme = document().page().preferred_color_scheme();
|
||||
// FIXME: We can't just check for Auto because page().preferred_color_scheme() returns garbage data after startup.
|
||||
if (preferred_color_scheme != CSS::PreferredColorScheme::Dark && preferred_color_scheme != CSS::PreferredColorScheme::Light) {
|
||||
preferred_color_scheme = document().page().palette().is_dark() ? CSS::PreferredColorScheme::Dark : CSS::PreferredColorScheme::Light;
|
||||
}
|
||||
computed_values.set_color_scheme(computed_style.color_scheme(preferred_color_scheme, document().supported_color_schemes()));
|
||||
computed_values.set_color_scheme(computed_style.color_scheme(document().page().preferred_color_scheme(), document().supported_color_schemes()));
|
||||
|
||||
// NOTE: We have to be careful that font-related properties get set in the right order.
|
||||
// m_font is used by Length::to_px() when resolving sizes against this layout node.
|
||||
|
|
|
|||
|
|
@ -116,7 +116,13 @@ CSSPixelRect Page::web_exposed_screen_area() const
|
|||
|
||||
CSS::PreferredColorScheme Page::preferred_color_scheme() const
|
||||
{
|
||||
return m_client->preferred_color_scheme();
|
||||
auto preferred_color_scheme = m_client->preferred_color_scheme();
|
||||
|
||||
// FIXME: We can't just check for Auto because page().preferred_color_scheme() returns garbage data after startup.
|
||||
if (preferred_color_scheme != CSS::PreferredColorScheme::Dark && preferred_color_scheme != CSS::PreferredColorScheme::Light)
|
||||
preferred_color_scheme = palette().is_dark() ? CSS::PreferredColorScheme::Dark : CSS::PreferredColorScheme::Light;
|
||||
|
||||
return preferred_color_scheme;
|
||||
}
|
||||
|
||||
CSS::PreferredContrast Page::preferred_contrast() const
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user