From 97e2e40e4cf4192bf1af4d1ab3209f4aca01b6ca Mon Sep 17 00:00:00 2001 From: MacDue Date: Tue, 28 Jun 2022 11:26:41 +0100 Subject: [PATCH] LibWeb: Fix off-by-one shadow position on non-integer positioned boxes This fixes a issue due to the background/border painting using .to_rounded() to get an IntRect, but shadow painting was using enclosing_int_rect(). enclosing_int_rect() uses some floors/ceils and does not always match .to_rounded(). --- Userland/Libraries/LibWeb/Painting/PaintableBox.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp index 36391275fe..b4e0bfc4ba 100644 --- a/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp +++ b/Userland/Libraries/LibWeb/Painting/PaintableBox.cpp @@ -230,7 +230,7 @@ void PaintableBox::paint_box_shadow(PaintContext& context) const static_cast(layer.spread_distance.to_px(layout_box())), layer.placement == CSS::ShadowPlacement::Outer ? ShadowPlacement::Outer : ShadowPlacement::Inner); } - Painting::paint_box_shadow(context, enclosing_int_rect(absolute_border_box_rect()), normalized_border_radii_data(), resolved_box_shadow_data); + Painting::paint_box_shadow(context, absolute_border_box_rect().to_rounded(), normalized_border_radii_data(), resolved_box_shadow_data); } BorderRadiiData PaintableBox::normalized_border_radii_data() const