瀏覽代碼

LibHTML: Paint text background color before the underline decoration

Andreas Kling 5 年之前
父節點
當前提交
9f0ca1bfb0
共有 1 個文件被更改,包括 4 次插入4 次删除
  1. 4 4
      Libraries/LibHTML/Layout/LayoutText.cpp

+ 4 - 4
Libraries/LibHTML/Layout/LayoutText.cpp

@@ -42,6 +42,10 @@ void LayoutText::render_fragment(RenderingContext& context, const LineBoxFragmen
     auto& painter = context.painter();
     painter.set_font(style().font());
 
+    auto background_color = style().property(CSS::PropertyID::BackgroundColor);
+    if (background_color.has_value() && background_color.value()->is_color())
+        painter.fill_rect(enclosing_int_rect(fragment.rect()), background_color.value()->to_color(document()));
+
     auto color = style().color_or_fallback(CSS::PropertyID::Color, document(), Color::Black);
     auto text_decoration = style().string_or_fallback(CSS::PropertyID::TextDecoration, "none");
 
@@ -52,10 +56,6 @@ void LayoutText::render_fragment(RenderingContext& context, const LineBoxFragmen
     if (is_underline)
         painter.draw_line(enclosing_int_rect(fragment.rect()).bottom_left().translated(0, -1), enclosing_int_rect(fragment.rect()).bottom_right().translated(0, -1), color);
 
-    auto background_color = style().property(CSS::PropertyID::BackgroundColor);
-    if (background_color.has_value() && background_color.value()->is_color())
-        painter.fill_rect(enclosing_int_rect(fragment.rect()), background_color.value()->to_color(document()));
-
     painter.draw_text(enclosing_int_rect(fragment.rect()), m_text_for_rendering.substring_view(fragment.start(), fragment.length()), TextAlignment::TopLeft, color);
 }