From f650f18bd208dfcd55b836c44eec4bdf1ffc8fba Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 25 Jun 2020 15:31:56 +0200 Subject: [PATCH] LibWeb: Make scroll-to-anchor zone in on the element's padding box That seems to be what other engines do. This is a bit hackish but we'll soon have to redo scroll-to-anchor anyway for the multi-process model. --- Libraries/LibWeb/PageView.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Libraries/LibWeb/PageView.cpp b/Libraries/LibWeb/PageView.cpp index 4230183ad1..95cafa09bf 100644 --- a/Libraries/LibWeb/PageView.cpp +++ b/Libraries/LibWeb/PageView.cpp @@ -331,6 +331,11 @@ void PageView::scroll_to_anchor(const StringView& name) } auto& layout_node = *element->layout_node(); Gfx::FloatRect float_rect { layout_node.box_type_agnostic_position(), { (float)visible_content_rect().width(), (float)visible_content_rect().height() } }; + if (is(layout_node)) { + auto& layout_box = to(layout_node); + auto padding_box = layout_box.box_model().padding_box(layout_box); + float_rect.move_by(-padding_box.left, -padding_box.top); + } scroll_into_view(enclosing_int_rect(float_rect), true, true); window()->set_override_cursor(GUI::StandardCursor::None); }