summaryrefslogtreecommitdiffstats
path: root/native/src/element.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-05 05:44:10 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-07-08 11:29:19 +0200
commit625979b6652a8a14a0eaf6bd62f1e9a8da0ae421 (patch)
tree0ed6994fc2ff0a8671bb6ec26bdae21af2b6fb23 /native/src/element.rs
parent61f22b1db23f3495145a9a4f7255311fe8381998 (diff)
downloadiced-625979b6652a8a14a0eaf6bd62f1e9a8da0ae421.tar.gz
iced-625979b6652a8a14a0eaf6bd62f1e9a8da0ae421.tar.bz2
iced-625979b6652a8a14a0eaf6bd62f1e9a8da0ae421.zip
Draft `Widget::overlay` idempotency
Diffstat (limited to 'native/src/element.rs')
-rw-r--r--native/src/element.rs14
1 files changed, 8 insertions, 6 deletions
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<Overlay<'a, Message, Renderer>> {
+ ) -> Option<Overlay<'b, Message, Renderer>> {
self.widget.overlay(layout)
}
}
@@ -366,10 +366,12 @@ where
fn overlay(
&mut self,
layout: Layout<'_>,
- ) -> Option<Overlay<'a, B, Renderer>> {
+ ) -> Option<Overlay<'_, B, Renderer>> {
+ 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<Overlay<'a, Message, Renderer>> {
+ ) -> Option<Overlay<'_, Message, Renderer>> {
self.element.overlay(layout)
}
}