diff --git a/Tests/LibWeb/Text/expected/get-bounding-client-rect-display-none.txt b/Tests/LibWeb/Text/expected/get-bounding-client-rect-display-none.txt index a986c65cdc5..c602184bcaf 100644 --- a/Tests/LibWeb/Text/expected/get-bounding-client-rect-display-none.txt +++ b/Tests/LibWeb/Text/expected/get-bounding-client-rect-display-none.txt @@ -1 +1,3 @@ + {"x":0,"y":0,"width":0,"height":0,"top":0,"right":0,"bottom":0,"left":0} +{"x":0,"y":0,"width":0,"height":0,"top":0,"right":0,"bottom":0,"left":0} diff --git a/Tests/LibWeb/Text/input/get-bounding-client-rect-display-none.html b/Tests/LibWeb/Text/input/get-bounding-client-rect-display-none.html index 3569cbc8798..01c784cd039 100644 --- a/Tests/LibWeb/Text/input/get-bounding-client-rect-display-none.html +++ b/Tests/LibWeb/Text/input/get-bounding-client-rect-display-none.html @@ -3,10 +3,14 @@ #box { display: none; }
+
diff --git a/Userland/Libraries/LibWeb/DOM/Element.cpp b/Userland/Libraries/LibWeb/DOM/Element.cpp index a43d60bcaeb..1e0d1295319 100644 --- a/Userland/Libraries/LibWeb/DOM/Element.cpp +++ b/Userland/Libraries/LibWeb/DOM/Element.cpp @@ -884,16 +884,16 @@ JS::NonnullGCPtr Element::get_client_rects() const const_cast(document()).update_paint_and_hit_testing_properties_if_needed(); Gfx::AffineTransform transform; - if (auto const* paintable_box = this->paintable_box()) - transform = Gfx::extract_2d_affine_transform(paintable_box->transform()); CSSPixelPoint scroll_offset; - for (auto const* containing_block = paintable()->containing_block(); containing_block; containing_block = containing_block->containing_block()) { - transform = Gfx::extract_2d_affine_transform(containing_block->transform()).multiply(transform); - scroll_offset.translate_by(containing_block->scroll_offset()); - } - auto const* paintable = this->paintable(); + if (auto const* paintable_box = this->paintable_box()) { + transform = Gfx::extract_2d_affine_transform(paintable_box->transform()); + for (auto const* containing_block = paintable->containing_block(); containing_block; containing_block = containing_block->containing_block()) { + transform = Gfx::extract_2d_affine_transform(containing_block->transform()).multiply(transform); + scroll_offset.translate_by(containing_block->scroll_offset()); + } + auto absolute_rect = paintable_box->absolute_border_box_rect(); auto transformed_rect = transform.map(absolute_rect.translated(-paintable_box->transform_origin()).to_type()) .to_type()