LibWeb: Add PaintableBox::transform_rect_to_viewport()

Extract the repeated pattern of transforming a rectangle from absolute
coordinates to viewport coordinates via the accumulated visual context
into a helper method.
This commit is contained in:
Aliaksandr Kalenik
2026-03-11 01:02:13 +01:00
committed by Alexander Kalenik
parent b217c5a496
commit 01a7c8e424
Notes: github-actions[bot] 2026-03-11 01:32:36 +00:00
5 changed files with 17 additions and 23 deletions

View File

@@ -2586,13 +2586,11 @@ CSSPixelPoint Navigable::to_top_level_position(CSSPixelPoint a_position)
if (!paintable)
return {};
if (auto const* paintable_box = as_if<Painting::PaintableBox>(*paintable); paintable_box && paintable_box->accumulated_visual_context()) {
auto const& accumulated_visual_context = *paintable_box->accumulated_visual_context();
auto const& viewport_paintable = *paintable_box->document().paintable();
auto const& scroll_state = viewport_paintable.scroll_state_snapshot();
if (auto const* paintable_box = as_if<Painting::PaintableBox>(*paintable);
paintable_box && paintable_box->accumulated_visual_context()) {
auto point = paintable_box->absolute_position();
point.translate_by(position);
position = accumulated_visual_context.transform_rect_to_viewport({ point, { 0, 0 } }, scroll_state).location().to_type<CSSPixels>();
position = paintable_box->transform_rect_to_viewport({ point, { 0, 0 } }).location();
} else {
position.translate_by(paintable->box_type_agnostic_position());
}