diff options
author | 2023-03-16 20:23:25 +0100 | |
---|---|---|
committer | 2024-01-04 06:51:21 +0100 | |
commit | 0655a20ad119e2e9790afcc45039fd4ac0e7d432 (patch) | |
tree | 0ce316e386e5b47b6ca80fe16f0a384ef05ff4e8 /widget/src/overlay | |
parent | 68c0484b5cf6f572e4cb0bf72c22c1a93dbb654e (diff) | |
download | iced-0655a20ad119e2e9790afcc45039fd4ac0e7d432.tar.gz iced-0655a20ad119e2e9790afcc45039fd4ac0e7d432.tar.bz2 iced-0655a20ad119e2e9790afcc45039fd4ac0e7d432.zip |
Make `Shrink` have priority over `Fill` in layout
Diffstat (limited to 'widget/src/overlay')
-rw-r--r-- | widget/src/overlay/menu.rs | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/widget/src/overlay/menu.rs b/widget/src/overlay/menu.rs index e45b44ae..ef39a952 100644 --- a/widget/src/overlay/menu.rs +++ b/widget/src/overlay/menu.rs @@ -254,15 +254,14 @@ where ) .width(self.width); - let mut node = self.container.layout(self.state, renderer, &limits); + let node = self.container.layout(self.state, renderer, &limits); + let size = node.size(); node.move_to(if space_below > space_above { position + Vector::new(0.0, self.target_height) } else { - position - Vector::new(0.0, node.size().height) - }); - - node + position - Vector::new(0.0, size.height) + }) } fn on_event( @@ -359,7 +358,6 @@ where ) -> layout::Node { use std::f32; - let limits = limits.width(Length::Fill).height(Length::Shrink); let text_size = self.text_size.unwrap_or_else(|| renderer.default_size()); @@ -372,7 +370,7 @@ where * self.options.len() as f32, ); - limits.resolve(intrinsic) + limits.resolve(intrinsic, Length::Fill, Length::Shrink) }; layout::Node::new(size) |