From 625979b6652a8a14a0eaf6bd62f1e9a8da0ae421 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sun, 5 Jul 2020 05:44:10 +0200 Subject: Draft `Widget::overlay` idempotency --- native/src/element.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'native/src/element.rs') diff --git a/native/src/element.rs b/native/src/element.rs index c881871a..b00f9e55 100644 --- a/native/src/element.rs +++ b/native/src/element.rs @@ -273,10 +273,10 @@ where self.widget.hash_layout(state); } - pub fn overlay( - &mut self, + pub fn overlay<'b>( + &'b mut self, layout: Layout<'_>, - ) -> Option> { + ) -> Option> { self.widget.overlay(layout) } } @@ -366,10 +366,12 @@ where fn overlay( &mut self, layout: Layout<'_>, - ) -> Option> { + ) -> Option> { + let mapper = self.mapper.clone(); + self.widget .overlay(layout) - .map(|overlay| overlay.map(self.mapper.clone())) + .map(move |overlay| overlay.map(mapper)) } } @@ -450,7 +452,7 @@ where fn overlay( &mut self, layout: Layout<'_>, - ) -> Option> { + ) -> Option> { self.element.overlay(layout) } } -- cgit