mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-04-25 17:25:08 +02:00
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:
committed by
Alexander Kalenik
parent
b217c5a496
commit
01a7c8e424
Notes:
github-actions[bot]
2026-03-11 01:32:36 +00:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/LadybirdBrowser/ladybird/commit/01a7c8e424e Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/8359
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user