mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 07:37:35 +00:00
LibWeb: Check if corners have radius after converting to device pixels
Check needs to happen after conversion because non-zero radius in CSSPixels could turn into zero in device pixels. Fixes https://github.com/SerenityOS/serenity/issues/22765
This commit is contained in:
parent
6087d2feec
commit
64a48065b0
4 changed files with 27 additions and 5 deletions
|
@ -111,17 +111,17 @@ void BorderRadiusCornerClipper::blit_corner_clipping(Gfx::Painter& painter)
|
|||
ScopedCornerRadiusClip::ScopedCornerRadiusClip(PaintContext& context, DevicePixelRect const& border_rect, BorderRadiiData const& border_radii, CornerClip corner_clip)
|
||||
: m_context(context)
|
||||
, m_id(context.allocate_corner_clipper_id())
|
||||
, m_has_radius(border_radii.has_any_radius())
|
||||
, m_border_rect(border_rect)
|
||||
{
|
||||
if (!m_has_radius)
|
||||
return;
|
||||
CornerRadii const corner_radii {
|
||||
.top_left = border_radii.top_left.as_corner(context),
|
||||
.top_right = border_radii.top_right.as_corner(context),
|
||||
.bottom_right = border_radii.bottom_right.as_corner(context),
|
||||
.bottom_left = border_radii.bottom_left.as_corner(context)
|
||||
};
|
||||
m_has_radius = corner_radii.has_any_radius();
|
||||
if (!m_has_radius)
|
||||
return;
|
||||
m_context.recording_painter().sample_under_corners(m_id, corner_radii, border_rect.to_type<int>(), corner_clip);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue