summaryrefslogtreecommitdiffstats
path: root/widget/src/container.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-03-16 20:23:25 +0100
committerLibravatar Héctor Ramón Jiménez <hector@hecrj.dev>2024-01-04 06:51:21 +0100
commit0655a20ad119e2e9790afcc45039fd4ac0e7d432 (patch)
tree0ce316e386e5b47b6ca80fe16f0a384ef05ff4e8 /widget/src/container.rs
parent68c0484b5cf6f572e4cb0bf72c22c1a93dbb654e (diff)
downloadiced-0655a20ad119e2e9790afcc45039fd4ac0e7d432.tar.gz
iced-0655a20ad119e2e9790afcc45039fd4ac0e7d432.tar.bz2
iced-0655a20ad119e2e9790afcc45039fd4ac0e7d432.zip
Make `Shrink` have priority over `Fill` in layout
Diffstat (limited to 'widget/src/container.rs')
-rw-r--r--widget/src/container.rs33
1 files changed, 18 insertions, 15 deletions
diff --git a/widget/src/container.rs b/widget/src/container.rs
index 5dd7705b..b41a6023 100644
--- a/widget/src/container.rs
+++ b/widget/src/container.rs
@@ -312,24 +312,27 @@ pub fn layout(
layout_content: impl FnOnce(&layout::Limits) -> layout::Node,
) -> layout::Node {
let limits = limits
- .loose()
- .max_width(max_width)
- .max_height(max_height)
.width(width)
- .height(height);
+ .height(height)
+ .max_width(max_width)
+ .max_height(max_height);
- let mut content = layout_content(&limits.pad(padding).loose());
+ let content = layout_content(&limits.shrink(padding).loose());
let padding = padding.fit(content.size(), limits.max());
- let size = limits.pad(padding).resolve(content.size());
-
- content.move_to(Point::new(padding.left, padding.top));
- content.align(
- Alignment::from(horizontal_alignment),
- Alignment::from(vertical_alignment),
- size,
- );
-
- layout::Node::with_children(size.pad(padding), vec![content])
+ let size = limits
+ .shrink(padding)
+ .resolve(content.size(), width, height);
+
+ layout::Node::with_children(
+ size.expand(padding),
+ vec![content
+ .move_to(Point::new(padding.left, padding.top))
+ .align(
+ Alignment::from(horizontal_alignment),
+ Alignment::from(vertical_alignment),
+ size,
+ )],
+ )
}
/// Draws the background of a [`Container`] given its [`Appearance`] and its `bounds`.