Allow overlay from pane grid title bar

This commit is contained in:
Clark Moody 2021-06-17 14:50:28 -05:00
parent e68da229b3
commit 27b42ca6b6
2 changed files with 16 additions and 8 deletions

View File

@ -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)
}
}
}

View File

@ -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)
}
}