diff options
author | Oriol Brufau <obrufau@igalia.com> | 2024-09-13 12:47:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-13 10:47:50 +0000 |
commit | 52f89c95b9decf86b445f311b8c04412d8c1754f (patch) | |
tree | dfaff1f99d4412131e766f3ef8b2a440d7e65222 /components | |
parent | 6e80a34d09e8bb22bdac5feeff4cf30b571987ff (diff) | |
download | servo-52f89c95b9decf86b445f311b8c04412d8c1754f.tar.gz servo-52f89c95b9decf86b445f311b8c04412d8c1754f.zip |
Fix inset box-shadow to use the padding box (#33433)
As specified in https://drafts.csswg.org/css-backgrounds-3/#shadow-shape
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Diffstat (limited to 'components')
-rw-r--r-- | components/layout_2020/display_list/mod.rs | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/components/layout_2020/display_list/mod.rs b/components/layout_2020/display_list/mod.rs index c89a6f272ac..dcc912ef903 100644 --- a/components/layout_2020/display_list/mod.rs +++ b/components/layout_2020/display_list/mod.rs @@ -1028,18 +1028,17 @@ impl<'a> BuilderForBoxFragment<'a> { } // NB: According to CSS-BACKGROUNDS, box shadows render in *reverse* order (front to back). - let border_rect = self.border_rect; let common = builder.common_properties(MaxRect::max_rect(), &self.fragment.style); for box_shadow in box_shadows.iter().rev() { - let clip_mode = if box_shadow.inset { - BoxShadowClipMode::Inset + let (rect, clip_mode) = if box_shadow.inset { + (*self.padding_rect(), BoxShadowClipMode::Inset) } else { - BoxShadowClipMode::Outset + (self.border_rect, BoxShadowClipMode::Outset) }; builder.wr().push_box_shadow( &common, - border_rect, + rect, LayoutVector2D::new( box_shadow.base.horizontal.px(), box_shadow.base.vertical.px(), |