diff --git a/gpui/src/elements/stack.rs b/gpui/src/elements/stack.rs index 0d6858118dfc6794d7caf39632cac76b1a7acb23..f0d33e3afc8712237434cc1de0305563fef33201 100644 --- a/gpui/src/elements/stack.rs +++ b/gpui/src/elements/stack.rs @@ -49,7 +49,9 @@ impl Element for Stack { ctx: &mut PaintContext, ) -> Self::PaintState { for child in &mut self.children { + ctx.scene.push_layer(); child.paint(bounds.origin(), ctx); + ctx.scene.pop_layer(); } } diff --git a/gpui/src/scene.rs b/gpui/src/scene.rs index 1ac8654cdbd9cc2e69d595bbbb4f4aa98ea2ab7d..ce73837c69c208ff228977b3a094e7bc4d68a312 100644 --- a/gpui/src/scene.rs +++ b/gpui/src/scene.rs @@ -56,14 +56,16 @@ impl Scene { self.layers.as_slice() } - // pub fn push_layer(&mut self, clip_bounds: Option) { - - // } + pub fn push_layer(&mut self) { + let ix = self.layers.len(); + self.layers.push(Layer::default()); + self.active_layer_stack.push(ix); + } - // pub fn pop_layer(&mut self) { - // assert!(self.active_layer_stack.len() > 1); - // self.active_layer_stack.pop(); - // } + pub fn pop_layer(&mut self) { + assert!(self.active_layer_stack.len() > 1); + self.active_layer_stack.pop(); + } pub fn push_quad(&mut self, quad: Quad) { self.active_layer().push_quad(quad) diff --git a/zed/src/file_finder.rs b/zed/src/file_finder.rs index c57b33c6316a8f857ce0080ae5221c392a0365da..45b4cff164f0b538e06fe26a0c37b13e6c80afb0 100644 --- a/zed/src/file_finder.rs +++ b/zed/src/file_finder.rs @@ -70,11 +70,7 @@ impl View for FileFinder { .with_uniform_padding(6.0) .with_corner_radius(6.0) .with_background_color(ColorU::new(0xf2, 0xf2, 0xf2, 0xff)) - .with_shadow( - vec2f(0.0, 4.0), - 12.0, - ColorF::new(0.0, 0.0, 0.0, 0.25).to_u8(), - ) + .with_shadow(vec2f(0., 4.), 12., ColorF::new(0.0, 0.0, 0.0, 0.25).to_u8()) .boxed(), ) .with_max_width(600.0)