mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-09 08:33:28 +02:00
LibWeb: Handle interpolation of BorderRadius style value type
This commit is contained in:
Notes:
github-actions[bot]
2025-09-14 15:50:21 +00:00
Author: https://github.com/MFMF-EGY 🔰 Commit: https://github.com/LadybirdBrowser/ladybird/commit/fff09ed3301 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/6167 Reviewed-by: https://github.com/tcl3 ✅
@@ -15,6 +15,7 @@
|
||||
#include <LibWeb/CSS/StyleValues/AngleStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/BackgroundSizeStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/BorderImageSliceStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/BorderRadiusStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/CalculatedStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/ColorStyleValue.h>
|
||||
#include <LibWeb/CSS/StyleValues/FontStyleStyleValue.h>
|
||||
@@ -1193,6 +1194,19 @@ static RefPtr<StyleValue const> interpolate_value_impl(DOM::Element& element, Ca
|
||||
interpolated_left.release_nonnull(),
|
||||
from_border_image_slice.fill());
|
||||
}
|
||||
case StyleValue::Type::BorderRadius: {
|
||||
auto const& from_horizontal_radius = from.as_border_radius().horizontal_radius();
|
||||
auto const& to_horizontal_radius = to.as_border_radius().horizontal_radius();
|
||||
auto const& from_vertical_radius = from.as_border_radius().vertical_radius();
|
||||
auto const& to_vertical_radius = to.as_border_radius().vertical_radius();
|
||||
auto const interpolated_horizontal_radius = interpolate_length_percentage(calculation_context, from_horizontal_radius, to_horizontal_radius, delta);
|
||||
auto const interpolated_vertical_radius = interpolate_length_percentage(calculation_context, from_vertical_radius, to_vertical_radius, delta);
|
||||
if (!interpolated_horizontal_radius.has_value() || !interpolated_vertical_radius.has_value())
|
||||
return {};
|
||||
return BorderRadiusStyleValue::create(
|
||||
interpolated_horizontal_radius.value(),
|
||||
interpolated_vertical_radius.value());
|
||||
}
|
||||
case StyleValue::Type::Color: {
|
||||
ColorResolutionContext color_resolution_context {};
|
||||
if (auto node = element.layout_node()) {
|
||||
|
||||
Reference in New Issue
Block a user