summaryrefslogtreecommitdiffstats
path: root/widget/src/pane_grid.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-08-30 06:36:24 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-08-30 06:36:24 +0200
commita026e917d3364e58fd827995261158d8cb356ce9 (patch)
treea057623bc812da0d4771399dcdc2fe07c1d04b40 /widget/src/pane_grid.rs
parent301e6e5fdc40f36f98bd8fef0fa923745533ad27 (diff)
downloadiced-a026e917d3364e58fd827995261158d8cb356ce9.tar.gz
iced-a026e917d3364e58fd827995261158d8cb356ce9.tar.bz2
iced-a026e917d3364e58fd827995261158d8cb356ce9.zip
Make `widget::Tree` mutable in `Widget::layout`
Diffstat (limited to 'widget/src/pane_grid.rs')
-rw-r--r--widget/src/pane_grid.rs13
1 files changed, 9 insertions, 4 deletions
diff --git a/widget/src/pane_grid.rs b/widget/src/pane_grid.rs
index 366d9a66..6e2b39a4 100644
--- a/widget/src/pane_grid.rs
+++ b/widget/src/pane_grid.rs
@@ -275,7 +275,7 @@ where
fn layout(
&self,
- tree: &Tree,
+ tree: &mut Tree,
renderer: &Renderer,
limits: &layout::Limits,
) -> layout::Node {
@@ -475,7 +475,7 @@ where
/// Calculates the [`Layout`] of a [`PaneGrid`].
pub fn layout<Renderer, T>(
- tree: &Tree,
+ tree: &mut Tree,
renderer: &Renderer,
limits: &layout::Limits,
node: &Node,
@@ -483,14 +483,19 @@ pub fn layout<Renderer, T>(
height: Length,
spacing: f32,
contents: impl Iterator<Item = (Pane, T)>,
- layout_content: impl Fn(T, &Tree, &Renderer, &layout::Limits) -> layout::Node,
+ layout_content: impl Fn(
+ T,
+ &mut Tree,
+ &Renderer,
+ &layout::Limits,
+ ) -> layout::Node,
) -> layout::Node {
let limits = limits.width(width).height(height);
let size = limits.resolve(Size::ZERO);
let regions = node.pane_regions(spacing, size);
let children = contents
- .zip(tree.children.iter())
+ .zip(tree.children.iter_mut())
.filter_map(|((pane, content), tree)| {
let region = regions.get(&pane)?;
let size = Size::new(region.width, region.height);