diff options
author | 2021-07-15 16:43:52 +0200 | |
---|---|---|
committer | 2021-07-15 16:43:52 +0200 | |
commit | 2993e9b46674d976443abe1380c0e2b54f934a8e (patch) | |
tree | 1f1e2b87b7e3e7ddd69867cfbfc20deaff80dc36 | |
parent | e5c958e9d60409814574b94548f2b941e4c36545 (diff) | |
download | iced-2993e9b46674d976443abe1380c0e2b54f934a8e.tar.gz iced-2993e9b46674d976443abe1380c0e2b54f934a8e.tar.bz2 iced-2993e9b46674d976443abe1380c0e2b54f934a8e.zip |
Fix implementation of `Widget::overlay` for `pane_grid::TitleBar`
-rw-r--r-- | native/src/widget/pane_grid/title_bar.rs | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/native/src/widget/pane_grid/title_bar.rs b/native/src/widget/pane_grid/title_bar.rs index efdc1e54..48d24c41 100644 --- a/native/src/widget/pane_grid/title_bar.rs +++ b/native/src/widget/pane_grid/title_bar.rs @@ -248,6 +248,22 @@ where &mut self, layout: Layout<'_>, ) -> Option<overlay::Element<'_, Message, Renderer>> { - self.content.overlay(layout) + let mut children = layout.children(); + let padded = children.next().unwrap(); + + let mut children = padded.children(); + let title_layout = children.next().unwrap(); + + let Self { + content, controls, .. + } = self; + + content.overlay(title_layout).or_else(move || { + controls.as_mut().and_then(|controls| { + let controls_layout = children.next().unwrap(); + + controls.overlay(controls_layout) + }) + }) } } |