widget::popover: add show_popup to allow disabling overlay
This commit is contained in:
parent
1bd39b17ae
commit
4674e4b23e
1 changed files with 11 additions and 0 deletions
|
|
@ -28,6 +28,7 @@ pub struct Popover<'a, Message, Renderer> {
|
|||
// XXX Avoid refcell; improve iced overlay API?
|
||||
popup: RefCell<Element<'a, Message, Renderer>>,
|
||||
position: Option<Point>,
|
||||
show_popup: bool,
|
||||
}
|
||||
|
||||
impl<'a, Message, Renderer> Popover<'a, Message, Renderer> {
|
||||
|
|
@ -39,6 +40,7 @@ impl<'a, Message, Renderer> Popover<'a, Message, Renderer> {
|
|||
content: content.into(),
|
||||
popup: RefCell::new(popup.into()),
|
||||
position: None,
|
||||
show_popup: true,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -47,6 +49,11 @@ impl<'a, Message, Renderer> Popover<'a, Message, Renderer> {
|
|||
self
|
||||
}
|
||||
|
||||
pub fn show_popup(mut self, show_popup: bool) -> Self {
|
||||
self.show_popup = show_popup;
|
||||
self
|
||||
}
|
||||
|
||||
// TODO More options for positioning similar to GdkPopup, xdg_popup
|
||||
}
|
||||
|
||||
|
|
@ -160,6 +167,10 @@ where
|
|||
layout: Layout<'_>,
|
||||
_renderer: &Renderer,
|
||||
) -> Option<overlay::Element<'b, Message, Renderer>> {
|
||||
if !self.show_popup {
|
||||
return None;
|
||||
}
|
||||
|
||||
let bounds = layout.bounds();
|
||||
let (position, centered) = match self.position {
|
||||
Some(relative) => (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue