diff options
author | 2022-11-18 12:09:18 -0800 | |
---|---|---|
committer | 2022-11-29 12:50:57 -0800 | |
commit | 9a601c095420d3eba23df470becc112b928f9f62 (patch) | |
tree | 9b589ef8efe8ca6d1193b3735b41f9a4c3397bce /native/src/user_interface.rs | |
parent | 23da5a32515a2eaf567d35d1b81e4b8400a27219 (diff) | |
download | iced-9a601c095420d3eba23df470becc112b928f9f62.tar.gz iced-9a601c095420d3eba23df470becc112b928f9f62.tar.bz2 iced-9a601c095420d3eba23df470becc112b928f9f62.zip |
Get widget operations working w/ overlay
Diffstat (limited to 'native/src/user_interface.rs')
-rw-r--r-- | native/src/user_interface.rs | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs index 55c86a17..6b853da8 100644 --- a/native/src/user_interface.rs +++ b/native/src/user_interface.rs @@ -496,14 +496,19 @@ where operation, ); - if let Some(layout) = self.overlay.as_ref() { - if let Some(overlay) = self.root.as_widget_mut().overlay( - &mut self.state, - Layout::new(&self.base), - renderer, - ) { - overlay.operate(Layout::new(layout), operation); + if let Some(mut overlay) = self.root.as_widget_mut().overlay( + &mut self.state, + Layout::new(&self.base), + renderer, + ) { + if self.overlay.is_none() { + self.overlay = Some(overlay.layout(renderer, self.bounds)); } + + overlay.operate( + Layout::new(self.overlay.as_ref().unwrap()), + operation, + ); } } |