diff --git a/Userland/Libraries/LibWeb/Painting/StackingContext.cpp b/Userland/Libraries/LibWeb/Painting/StackingContext.cpp index 6c600857d1..0d8f0364f8 100644 --- a/Userland/Libraries/LibWeb/Painting/StackingContext.cpp +++ b/Userland/Libraries/LibWeb/Painting/StackingContext.cpp @@ -30,6 +30,7 @@ static void paint_node(Layout::Node const& layout_node, PaintContext& context, P StackingContext::StackingContext(Layout::Box& box, StackingContext* parent) : m_box(box) , m_transform(combine_transformations(m_box.computed_values().transformations())) + , m_transform_origin(compute_transform_origin()) , m_parent(parent) { VERIFY(m_parent != this); @@ -316,7 +317,7 @@ void StackingContext::paint(PaintContext& context) const } } -Gfx::FloatPoint StackingContext::transform_origin() const +Gfx::FloatPoint StackingContext::compute_transform_origin() const { auto style_value = m_box.computed_values().transform_origin(); // FIXME: respect transform-box property diff --git a/Userland/Libraries/LibWeb/Painting/StackingContext.h b/Userland/Libraries/LibWeb/Painting/StackingContext.h index 13e9d677f6..b06bec939e 100644 --- a/Userland/Libraries/LibWeb/Painting/StackingContext.h +++ b/Userland/Libraries/LibWeb/Painting/StackingContext.h @@ -44,13 +44,15 @@ public: private: Layout::Box& m_box; Gfx::FloatMatrix4x4 m_transform; + Gfx::FloatPoint m_transform_origin; StackingContext* const m_parent { nullptr }; Vector m_children; void paint_internal(PaintContext&) const; Gfx::FloatMatrix4x4 get_transformation_matrix(CSS::Transformation const& transformation) const; Gfx::FloatMatrix4x4 combine_transformations(Vector const& transformations) const; - Gfx::FloatPoint transform_origin() const; + Gfx::FloatPoint transform_origin() const { return m_transform_origin; } + Gfx::FloatPoint compute_transform_origin() const; }; }