From 4674e4b23e80adcebb9096217dd3ff0a2c5ac15b Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Fri, 5 Jan 2024 10:55:10 -0700 Subject: [PATCH] widget::popover: add show_popup to allow disabling overlay --- src/widget/popover.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/widget/popover.rs b/src/widget/popover.rs index 9617395..8e990b3 100644 --- a/src/widget/popover.rs +++ b/src/widget/popover.rs @@ -28,6 +28,7 @@ pub struct Popover<'a, Message, Renderer> { // XXX Avoid refcell; improve iced overlay API? popup: RefCell>, position: Option, + 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> { + if !self.show_popup { + return None; + } + let bounds = layout.bounds(); let (position, centered) = match self.position { Some(relative) => (