mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:27:35 +00:00
LibWeb: Store clip border radii in CSSPixels instead of DevicePixels
Paintable boxes should not hold information stored in device pixels. It should be converted from CSS pixels only by the time painting command recording occurs.
This commit is contained in:
parent
41f57a5477
commit
d27b376699
5 changed files with 13 additions and 10 deletions
|
@ -95,7 +95,7 @@ void ViewportPaintable::assign_scroll_frame_ids(HashMap<Painting::PaintableBox c
|
|||
});
|
||||
}
|
||||
|
||||
void ViewportPaintable::assign_clip_rectangles(PaintContext const& context)
|
||||
void ViewportPaintable::assign_clip_rectangles()
|
||||
{
|
||||
HashMap<Paintable const*, CSSPixelRect> clip_rects;
|
||||
// Calculate clip rects for all boxes that either have hidden overflow or a CSS clip property.
|
||||
|
@ -129,10 +129,9 @@ void ViewportPaintable::assign_clip_rectangles(PaintContext const& context)
|
|||
for (auto block = paintable_box.containing_block(); block; block = block->containing_block()) {
|
||||
if (auto containing_block_clip_rect = clip_rects.get(block->paintable()); containing_block_clip_rect.has_value()) {
|
||||
auto border_radii_data = block->paintable_box()->normalized_border_radii_data(ShrinkRadiiForBorders::Yes);
|
||||
CornerRadii corner_radii = border_radii_data.as_corners(context);
|
||||
if (corner_radii.has_any_radius()) {
|
||||
if (border_radii_data.has_any_radius()) {
|
||||
// FIXME: Border radii of all boxes in containing block chain should be taken into account instead of just the closest one.
|
||||
const_cast<PaintableBox&>(paintable_box).set_corner_clip_radii(corner_radii);
|
||||
const_cast<PaintableBox&>(paintable_box).set_corner_clip_radii(border_radii_data);
|
||||
}
|
||||
clip_rect = *containing_block_clip_rect;
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue