LibWeb: Simplify ViewportPaintable::assign_scroll_frames()

No functional changes.
This commit is contained in:
Jelle Raaijmakers 2025-06-17 16:30:30 +02:00 committed by Tim Ledbetter
commit 8f139d065c
Notes: github-actions[bot] 2025-06-17 16:18:51 +00:00

View file

@ -81,8 +81,8 @@ void ViewportPaintable::assign_scroll_frames()
} }
sticky_scroll_frame = m_scroll_state.create_sticky_frame_for(paintable_box, parent_scroll_frame); sticky_scroll_frame = m_scroll_state.create_sticky_frame_for(paintable_box, parent_scroll_frame);
const_cast<PaintableBox&>(paintable_box).set_enclosing_scroll_frame(sticky_scroll_frame); paintable_box.set_enclosing_scroll_frame(sticky_scroll_frame);
const_cast<PaintableBox&>(paintable_box).set_own_scroll_frame(sticky_scroll_frame); paintable_box.set_own_scroll_frame(sticky_scroll_frame);
} }
if (paintable_box.has_scrollable_overflow() || is<ViewportPaintable>(paintable_box)) { if (paintable_box.has_scrollable_overflow() || is<ViewportPaintable>(paintable_box)) {
@ -99,19 +99,15 @@ void ViewportPaintable::assign_scroll_frames()
return TraversalDecision::Continue; return TraversalDecision::Continue;
}); });
for_each_in_subtree([&](auto const& paintable) { for_each_in_subtree([&](auto& paintable) {
if (paintable.is_fixed_position()) { if (paintable.is_fixed_position() || paintable.is_sticky_position())
return TraversalDecision::Continue; return TraversalDecision::Continue;
}
if (paintable.is_sticky_position()) {
return TraversalDecision::Continue;
}
for (auto block = paintable.containing_block(); block; block = block->containing_block()) { for (auto block = paintable.containing_block(); block; block = block->containing_block()) {
if (auto scroll_frame = block->own_scroll_frame(); scroll_frame) { if (auto scroll_frame = block->own_scroll_frame(); scroll_frame) {
if (paintable.is_paintable_box()) { if (auto* paintable_box = as_if<PaintableBox>(paintable))
auto const& paintable_box = static_cast<PaintableBox const&>(paintable); paintable_box->set_enclosing_scroll_frame(*scroll_frame);
const_cast<PaintableBox&>(paintable_box).set_enclosing_scroll_frame(*scroll_frame);
}
return TraversalDecision::Continue; return TraversalDecision::Continue;
} }
if (block->is_fixed_position()) { if (block->is_fixed_position()) {