summaryrefslogtreecommitdiffstats
path: root/native/src/user_interface.rs
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/user_interface.rs')
-rw-r--r--native/src/user_interface.rs16
1 files changed, 11 insertions, 5 deletions
diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs
index 7a64ac59..996bdd30 100644
--- a/native/src/user_interface.rs
+++ b/native/src/user_interface.rs
@@ -198,8 +198,11 @@ where
messages: &mut Vec<Message>,
) -> Vec<event::Status> {
let (base_cursor, overlay_statuses) = if let Some(mut overlay) =
- self.root.overlay(Layout::new(&self.base.layout))
- {
+ self.root.overlay(
+ Layout::new(&self.base.layout),
+ self.overlay.as_ref().map(|l| l.layout.bounds()),
+ cursor_position,
+ ) {
let layer = Self::overlay_layer(
self.overlay.take(),
self.bounds,
@@ -334,9 +337,11 @@ where
) -> Renderer::Output {
let viewport = Rectangle::with_size(self.bounds);
- let overlay = if let Some(mut overlay) =
- self.root.overlay(Layout::new(&self.base.layout))
- {
+ let overlay = if let Some(mut overlay) = self.root.overlay(
+ Layout::new(&self.base.layout),
+ self.overlay.as_ref().map(|l| l.layout.bounds()),
+ cursor_position,
+ ) {
let layer = Self::overlay_layer(
self.overlay.take(),
self.bounds,
@@ -351,6 +356,7 @@ where
&Renderer::Defaults::default(),
Layout::new(&layer.layout),
cursor_position,
+ &viewport,
);
self.overlay = Some(layer);