1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:27:35 +00:00

LibWeb: Support Element.client{Top,Left,Width,Height}

This commit is contained in:
Andreas Kling 2021-09-30 02:17:23 +02:00
parent 9d852623f2
commit 3006e15c94
3 changed files with 42 additions and 0 deletions

View file

@ -358,4 +358,36 @@ NonnullRefPtr<Geometry::DOMRect> Element::get_bounding_client_rect() const
return Geometry::DOMRect::create(box.absolute_rect().translated(-viewport_offset.x(), -viewport_offset.y()));
}
int Element::client_top() const
{
if (!layout_node() || !layout_node()->is_box())
return 0;
auto& box = static_cast<Layout::Box const&>(*layout_node());
return box.absolute_rect().top();
}
int Element::client_left() const
{
if (!layout_node() || !layout_node()->is_box())
return 0;
auto& box = static_cast<Layout::Box const&>(*layout_node());
return box.absolute_rect().left();
}
int Element::client_width() const
{
if (!layout_node() || !layout_node()->is_box())
return 0;
auto& box = static_cast<Layout::Box const&>(*layout_node());
return box.absolute_rect().width();
}
int Element::client_height() const
{
if (!layout_node() || !layout_node()->is_box())
return 0;
auto& box = static_cast<Layout::Box const&>(*layout_node());
return box.absolute_rect().height();
}
}