mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 17:27:34 +00:00
LibWeb: Move box_type_agnostic_position() from layout node to paintable
For this method, there is no need to go through the layout node when we can directly reach the paintable.
This commit is contained in:
parent
31e5b5f5de
commit
814bed33b4
8 changed files with 39 additions and 36 deletions
|
@ -33,6 +33,7 @@
|
|||
#include <LibWeb/Layout/Viewport.h>
|
||||
#include <LibWeb/Namespace.h>
|
||||
#include <LibWeb/Page/Page.h>
|
||||
#include <LibWeb/Painting/Paintable.h>
|
||||
#include <LibWeb/URL/URL.h>
|
||||
|
||||
namespace Web::HTML {
|
||||
|
@ -391,9 +392,9 @@ CSSPixelPoint BrowsingContext::to_top_level_position(CSSPixelPoint a_position)
|
|||
break;
|
||||
if (!ancestor->container())
|
||||
return {};
|
||||
if (!ancestor->container()->layout_node())
|
||||
if (!ancestor->container()->paintable())
|
||||
return {};
|
||||
position.translate_by(ancestor->container()->layout_node()->box_type_agnostic_position());
|
||||
position.translate_by(ancestor->container()->paintable()->box_type_agnostic_position());
|
||||
}
|
||||
return position;
|
||||
}
|
||||
|
|
|
@ -215,7 +215,7 @@ int HTMLElement::offset_top() const
|
|||
// ignoring any transforms that apply to the element and its ancestors, and terminate this algorithm.
|
||||
auto offset_parent = this->offset_parent();
|
||||
if (!offset_parent || !offset_parent->layout_node()) {
|
||||
auto position = layout_node()->box_type_agnostic_position();
|
||||
auto position = paintable()->box_type_agnostic_position();
|
||||
return position.y().to_int();
|
||||
}
|
||||
|
||||
|
@ -224,8 +224,8 @@ int HTMLElement::offset_top() const
|
|||
// from the y-coordinate of the top border edge of the first box associated with the element,
|
||||
// relative to the initial containing block origin,
|
||||
// ignoring any transforms that apply to the element and its ancestors.
|
||||
auto offset_parent_position = offset_parent->layout_node()->box_type_agnostic_position();
|
||||
auto position = layout_node()->box_type_agnostic_position();
|
||||
auto offset_parent_position = offset_parent->paintable()->box_type_agnostic_position();
|
||||
auto position = paintable()->box_type_agnostic_position();
|
||||
return position.y().to_int() - offset_parent_position.y().to_int();
|
||||
}
|
||||
|
||||
|
@ -248,7 +248,7 @@ int HTMLElement::offset_left() const
|
|||
// ignoring any transforms that apply to the element and its ancestors, and terminate this algorithm.
|
||||
auto offset_parent = this->offset_parent();
|
||||
if (!offset_parent || !offset_parent->layout_node()) {
|
||||
auto position = layout_node()->box_type_agnostic_position();
|
||||
auto position = paintable()->box_type_agnostic_position();
|
||||
return position.x().to_int();
|
||||
}
|
||||
|
||||
|
@ -257,8 +257,8 @@ int HTMLElement::offset_left() const
|
|||
// from the x-coordinate of the left border edge of the first CSS layout box associated with the element,
|
||||
// relative to the initial containing block origin,
|
||||
// ignoring any transforms that apply to the element and its ancestors.
|
||||
auto offset_parent_position = offset_parent->layout_node()->box_type_agnostic_position();
|
||||
auto position = layout_node()->box_type_agnostic_position();
|
||||
auto offset_parent_position = offset_parent->paintable()->box_type_agnostic_position();
|
||||
auto position = paintable()->box_type_agnostic_position();
|
||||
return position.x().to_int() - offset_parent_position.x().to_int();
|
||||
}
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include <LibWeb/Layout/Node.h>
|
||||
#include <LibWeb/Loader/GeneratedPagesLoader.h>
|
||||
#include <LibWeb/Page/Page.h>
|
||||
#include <LibWeb/Painting/Paintable.h>
|
||||
#include <LibWeb/Platform/EventLoopPlugin.h>
|
||||
#include <LibWeb/XHR/FormData.h>
|
||||
|
||||
|
@ -1920,9 +1921,9 @@ CSSPixelPoint Navigable::to_top_level_position(CSSPixelPoint a_position)
|
|||
break;
|
||||
if (!ancestor->container())
|
||||
return {};
|
||||
if (!ancestor->container()->layout_node())
|
||||
if (!ancestor->container()->paintable())
|
||||
return {};
|
||||
position.translate_by(ancestor->container()->layout_node()->box_type_agnostic_position());
|
||||
position.translate_by(ancestor->container()->paintable()->box_type_agnostic_position());
|
||||
}
|
||||
return position;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue