summaryrefslogtreecommitdiffstats
path: root/native/src/user_interface.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-01-30 05:01:28 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-01-30 05:11:59 +0100
commita50cc32d09ddff1d061701074908c28d5c5509ba (patch)
treec53742f5ce8d958e636b15d74a4781fc99e219be /native/src/user_interface.rs
parenta28bc3eaf05d59ef35ae5c182fa68478356364fd (diff)
downloadiced-a50cc32d09ddff1d061701074908c28d5c5509ba.tar.gz
iced-a50cc32d09ddff1d061701074908c28d5c5509ba.tar.bz2
iced-a50cc32d09ddff1d061701074908c28d5c5509ba.zip
Fix layout translation in `overlay::Group`
This bug produced improper positioning of overlays of elements inside a `Scrollable`.
Diffstat (limited to 'native/src/user_interface.rs')
-rw-r--r--native/src/user_interface.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs
index 0def730c..80dece21 100644
--- a/native/src/user_interface.rs
+++ b/native/src/user_interface.rs
@@ -6,7 +6,9 @@ use crate::mouse;
use crate::renderer;
use crate::widget;
use crate::window;
-use crate::{Clipboard, Element, Layout, Point, Rectangle, Shell, Size};
+use crate::{
+ Clipboard, Element, Layout, Point, Rectangle, Shell, Size, Vector,
+};
/// A set of interactive graphical elements with a specific [`Layout`].
///
@@ -203,7 +205,7 @@ where
let bounds = self.bounds;
let mut overlay = manual_overlay.as_mut().unwrap();
- let mut layout = overlay.layout(renderer, bounds);
+ let mut layout = overlay.layout(renderer, bounds, Vector::ZERO);
let mut event_statuses = Vec::new();
for event in events.iter().cloned() {
@@ -252,7 +254,7 @@ where
overlay = manual_overlay.as_mut().unwrap();
shell.revalidate_layout(|| {
- layout = overlay.layout(renderer, bounds);
+ layout = overlay.layout(renderer, bounds, Vector::ZERO);
});
}
@@ -434,10 +436,9 @@ where
.as_widget_mut()
.overlay(&mut self.state, Layout::new(&self.base), renderer)
{
- let overlay_layout = self
- .overlay
- .take()
- .unwrap_or_else(|| overlay.layout(renderer, self.bounds));
+ let overlay_layout = self.overlay.take().unwrap_or_else(|| {
+ overlay.layout(renderer, self.bounds, Vector::ZERO)
+ });
let new_cursor_position =
if overlay_layout.bounds().contains(cursor_position) {
@@ -538,7 +539,8 @@ where
renderer,
) {
if self.overlay.is_none() {
- self.overlay = Some(overlay.layout(renderer, self.bounds));
+ self.overlay =
+ Some(overlay.layout(renderer, self.bounds, Vector::ZERO));
}
overlay.operate(