1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 11:47:46 +00:00

LibWeb: Don't paint all stacking contexts like positioned elements

Previously stacking contexts were only painted in steps 3, 8, and 9.
These steps are only meant to cover positioned elements (as per
https://www.w3.org/TR/CSS22/zindex.html). This meant that elements with
opacity (which forms a stacking context) could end up painted above
elements that actually occlude them.
This commit is contained in:
MacDue 2023-08-13 18:56:56 +01:00 committed by Andreas Kling
parent ba51c7bb7f
commit 2a067b5601
2 changed files with 76 additions and 49 deletions

View file

@ -49,6 +49,7 @@ private:
Vector<StackingContext*> m_children;
size_t m_index_in_tree_order { 0 };
void paint_child(PaintContext&, StackingContext const&) const;
void paint_internal(PaintContext&) const;
Gfx::FloatMatrix4x4 get_transformation_matrix(CSS::Transformation const& transformation) const;
Gfx::FloatMatrix4x4 combine_transformations(Vector<CSS::Transformation> const& transformations) const;