From 71f249fd2cb50625e41e4bfa680932f18e983703 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 7 Nov 2019 21:36:32 +0100 Subject: [PATCH] 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. --- Libraries/LibHTML/Layout/LayoutBox.cpp | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/Libraries/LibHTML/Layout/LayoutBox.cpp b/Libraries/LibHTML/Layout/LayoutBox.cpp index 44ab81fe03..cf3039287f 100644 --- a/Libraries/LibHTML/Layout/LayoutBox.cpp +++ b/Libraries/LibHTML/Layout/LayoutBox.cpp @@ -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