diff --git a/Userland/Libraries/LibWeb/Painting/ViewportPaintable.cpp b/Userland/Libraries/LibWeb/Painting/ViewportPaintable.cpp index 5ed995f5111..50ddb912e12 100644 --- a/Userland/Libraries/LibWeb/Painting/ViewportPaintable.cpp +++ b/Userland/Libraries/LibWeb/Painting/ViewportPaintable.cpp @@ -168,29 +168,19 @@ void ViewportPaintable::refresh_clip_state() clip_frame.clear_rects(); - auto overflow_x = paintable_box.computed_values().overflow_x(); - auto overflow_y = paintable_box.computed_values().overflow_y(); - if (auto clip_rect = paintable_box.get_clip_rect(); clip_rect.has_value()) { - clip_frame.add_clip_rect(clip_rect.value(), {}, paintable_box.enclosing_scroll_frame()); - } - - if (overflow_x != CSS::Overflow::Visible && overflow_y != CSS::Overflow::Visible) { - auto overflow_clip_rect = paintable_box.absolute_padding_box_rect(); - clip_frame.add_clip_rect(overflow_clip_rect, paintable_box.normalized_border_radii_data(ShrinkRadiiForBorders::Yes), paintable_box.enclosing_scroll_frame()); - for (auto const* block = &paintable_box.layout_box(); !block->is_viewport(); block = block->containing_block()) { - auto const& block_paintable_box = *block->paintable_box(); - auto block_overflow_x = block_paintable_box.computed_values().overflow_x(); - auto block_overflow_y = block_paintable_box.computed_values().overflow_y(); - if (block_overflow_x != CSS::Overflow::Visible && block_overflow_y != CSS::Overflow::Visible) { - auto rect = block_paintable_box.absolute_padding_box_rect(); - clip_frame.add_clip_rect(rect, block_paintable_box.normalized_border_radii_data(ShrinkRadiiForBorders::Yes), block_paintable_box.enclosing_scroll_frame()); - } - if (auto css_clip_property_rect = block->paintable_box()->get_clip_rect(); css_clip_property_rect.has_value()) { - clip_frame.add_clip_rect(css_clip_property_rect.value(), {}, block_paintable_box.enclosing_scroll_frame()); - } - if (block->has_css_transform()) { - break; - } + for (auto const* block = &paintable_box.layout_box(); !block->is_viewport(); block = block->containing_block()) { + auto const& block_paintable_box = *block->paintable_box(); + auto block_overflow_x = block_paintable_box.computed_values().overflow_x(); + auto block_overflow_y = block_paintable_box.computed_values().overflow_y(); + if (block_overflow_x != CSS::Overflow::Visible && block_overflow_y != CSS::Overflow::Visible) { + auto rect = block_paintable_box.absolute_padding_box_rect(); + clip_frame.add_clip_rect(rect, block_paintable_box.normalized_border_radii_data(ShrinkRadiiForBorders::Yes), block_paintable_box.enclosing_scroll_frame()); + } + if (auto css_clip_property_rect = block->paintable_box()->get_clip_rect(); css_clip_property_rect.has_value()) { + clip_frame.add_clip_rect(css_clip_property_rect.value(), {}, block_paintable_box.enclosing_scroll_frame()); + } + if (block->has_css_transform()) { + break; } } }