summaryrefslogtreecommitdiffstats
path: root/native
diff options
context:
space:
mode:
authorLibravatar Clark Moody <clark@clarkmoody.com>2021-06-17 14:50:28 -0500
committerLibravatar Clark Moody <clark@clarkmoody.com>2021-06-17 14:51:23 -0500
commit27b42ca6b6585477fda0a5d07ec09bd74e501a1a (patch)
tree5e1889250e09e195a5d0e5f6491bf23309b77db6 /native
parente68da229b384fbe78514dab0b13c8eb4637f4f5d (diff)
downloadiced-27b42ca6b6585477fda0a5d07ec09bd74e501a1a.tar.gz
iced-27b42ca6b6585477fda0a5d07ec09bd74e501a1a.tar.bz2
iced-27b42ca6b6585477fda0a5d07ec09bd74e501a1a.zip
Allow overlay from pane grid title bar
Diffstat (limited to 'native')
-rw-r--r--native/src/widget/pane_grid/content.rs16
-rw-r--r--native/src/widget/pane_grid/title_bar.rs8
2 files changed, 16 insertions, 8 deletions
diff --git a/native/src/widget/pane_grid/content.rs b/native/src/widget/pane_grid/content.rs
index f028ec25..188c47e3 100644
--- a/native/src/widget/pane_grid/content.rs
+++ b/native/src/widget/pane_grid/content.rs
@@ -193,18 +193,18 @@ where
&mut self,
layout: Layout<'_>,
) -> Option<overlay::Element<'_, Message, Renderer>> {
- let body_layout = if self.title_bar.is_some() {
+ if let Some(title_bar) = self.title_bar.as_mut() {
let mut children = layout.children();
+ let title_bar_layout = children.next().unwrap();
- // Overlays only allowed in the pane body, for now at least.
- let _title_bar_layout = children.next();
+ if let Some(overlay) = title_bar.overlay(title_bar_layout) {
+ return Some(overlay);
+ }
- children.next()?
+ self.body.overlay(children.next()?)
} else {
- layout
- };
-
- self.body.overlay(body_layout)
+ self.body.overlay(layout)
+ }
}
}
diff --git a/native/src/widget/pane_grid/title_bar.rs b/native/src/widget/pane_grid/title_bar.rs
index d9d85dbb..efdc1e54 100644
--- a/native/src/widget/pane_grid/title_bar.rs
+++ b/native/src/widget/pane_grid/title_bar.rs
@@ -1,6 +1,7 @@
use crate::container;
use crate::event::{self, Event};
use crate::layout;
+use crate::overlay;
use crate::pane_grid;
use crate::{
Clipboard, Element, Hasher, Layout, Padding, Point, Rectangle, Size,
@@ -242,4 +243,11 @@ where
control_status.merge(title_status)
}
+
+ pub(crate) fn overlay(
+ &mut self,
+ layout: Layout<'_>,
+ ) -> Option<overlay::Element<'_, Message, Renderer>> {
+ self.content.overlay(layout)
+ }
}