@@ -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();
}
}
@@ -56,14 +56,16 @@ impl Scene {
self.layers.as_slice()
}
- // pub fn push_layer(&mut self, clip_bounds: Option<RectF>) {
-
- // }
+ 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)
@@ -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)