1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-08 17:47:35 +00:00

LibHTML: Draw box borders even if we don't have a border-color

In those cases we should fall back to currentColor, which is hackishly
implemented by falling back to "color" for now.
This commit is contained in:
Andreas Kling 2019-11-07 21:36:32 +01:00
parent ee2cafc15c
commit 71f249fd2c

View file

@ -46,9 +46,22 @@ void LayoutBox::render(RenderingContext& context)
auto border_width_value = style().property(CSS::PropertyID::BorderTopWidth);
auto border_color_value = style().property(CSS::PropertyID::BorderTopColor);
auto border_style_value = style().property(CSS::PropertyID::BorderTopStyle);
if (border_width_value.has_value() && border_color_value.has_value()) {
if (border_width_value.has_value()) {
int border_width = border_width_value.value()->to_length().to_px();
Color border_color = border_color_value.value()->to_color(document());
Color border_color;
if (border_color_value.has_value())
border_color = border_color_value.value()->to_color(document());
else {
// FIXME: This is basically CSS "currentColor" which should be handled elsewhere
// in a much more reusable way.
auto color_value = style().property(CSS::PropertyID::Color);
if (color_value.has_value())
border_color = color_value.value()->to_color(document());
else
border_color = Color::Black;
}
if (border_style_value.has_value() && border_style_value.value()->to_string() == "inset") {
// border-style: inset