LibWeb: Add motion preference

This adds a motion preference to the browser UI similar to the existing
ones for color scheme and contrast.
Both AppKit UI and Qt UI has this new preference.
The auto value is currently the same as NoPreference, follow-ups can
address wiring that up to the actual preference for the OS.
This commit is contained in:
Luke Warlow 2024-06-13 16:15:59 +02:00 committed by Tim Flynn
commit 099b77d60f
Notes: sideshowbarker 2024-07-16 20:08:14 +09:00
25 changed files with 238 additions and 8 deletions

View file

@ -354,8 +354,16 @@ Optional<CSS::MediaFeatureValue> Window::query_media_feature(CSS::MediaFeatureID
// FIXME: Make this a preference
return CSS::MediaFeatureValue(CSS::ValueID::NoPreference);
case CSS::MediaFeatureID::PrefersReducedMotion:
// FIXME: Make this a preference
return CSS::MediaFeatureValue(CSS::ValueID::NoPreference);
switch (page().preferred_motion()) {
case CSS::PreferredMotion::NoPreference:
return CSS::MediaFeatureValue(CSS::ValueID::NoPreference);
case CSS::PreferredMotion::Reduce:
return CSS::MediaFeatureValue(CSS::ValueID::Reduce);
case CSS::PreferredMotion::Auto:
default:
// FIXME: Fallback to system settings
return CSS::MediaFeatureValue(CSS::ValueID::NoPreference);
}
case CSS::MediaFeatureID::PrefersReducedTransparency:
// FIXME: Make this a preference
return CSS::MediaFeatureValue(CSS::ValueID::NoPreference);