context-menu: allow borrowed content

This commit is contained in:
Jeremy Soller 2025-07-22 15:45:22 -06:00 committed by Ashley Wulber
parent 8ebd06bed0
commit 5aa025af7d

View file

@ -18,11 +18,11 @@ use std::collections::HashSet;
use std::sync::Arc; use std::sync::Arc;
/// A context menu is a menu in a graphical user interface that appears upon user interaction, such as a right-click mouse operation. /// A context menu is a menu in a graphical user interface that appears upon user interaction, such as a right-click mouse operation.
pub fn context_menu<Message: 'static + Clone>( pub fn context_menu<'a, Message: 'static + Clone>(
content: impl Into<crate::Element<'static, Message>> + 'static, content: impl Into<crate::Element<'a, Message>>,
// on_context: Message, // on_context: Message,
context_menu: Option<Vec<menu::Tree<Message>>>, context_menu: Option<Vec<menu::Tree<Message>>>,
) -> ContextMenu<'static, Message> { ) -> ContextMenu<'a, Message> {
let mut this = ContextMenu { let mut this = ContextMenu {
content: content.into(), content: content.into(),
context_menu: context_menu.map(|menus| { context_menu: context_menu.map(|menus| {
@ -539,10 +539,8 @@ impl<Message: 'static + Clone> Widget<Message, crate::Theme, crate::Renderer>
} }
} }
impl<'a, Message: Clone + 'static> From<ContextMenu<'static, Message>> impl<'a, Message: Clone + 'static> From<ContextMenu<'a, Message>> for crate::Element<'a, Message> {
for crate::Element<'static, Message> fn from(widget: ContextMenu<'a, Message>) -> Self {
{
fn from(widget: ContextMenu<'static, Message>) -> Self {
Self::new(widget) Self::new(widget)
} }
} }