LibWeb/CSS: Allow getting a property's computed value without animations

The algorithm for starting a transition requires us to examine the
before-change and after-change values of the property, without taking
any current animations into account.
This commit is contained in:
Sam Atkins 2024-09-19 10:46:32 +01:00 committed by Andreas Kling
commit 3a10596136
Notes: github-actions[bot] 2024-09-22 04:43:20 +00:00
2 changed files with 10 additions and 4 deletions

View file

@ -112,10 +112,12 @@ void StyleProperties::reset_animated_properties()
m_data->m_animated_property_values.clear();
}
NonnullRefPtr<CSSStyleValue const> StyleProperties::property(CSS::PropertyID property_id) const
NonnullRefPtr<CSSStyleValue const> StyleProperties::property(CSS::PropertyID property_id, WithAnimationsApplied return_animated_value) const
{
if (auto animated_value = m_data->m_animated_property_values.get(property_id).value_or(nullptr))
return *animated_value;
if (return_animated_value == WithAnimationsApplied::Yes) {
if (auto animated_value = m_data->m_animated_property_values.get(property_id).value_or(nullptr))
return *animated_value;
}
// By the time we call this method, all properties have values assigned.
return *m_data->m_property_values[to_underlying(property_id)];