Fix `context_menu` not closing when clicking widget (#5799)

The rerun timeline context menu wouldn't close when clicking outside,
this fixes it
This commit is contained in:
Lucas Meurer 2025-03-18 11:32:18 +01:00 committed by GitHub
parent cf756df14d
commit d3c1ac3798
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 9 additions and 5 deletions

View File

@ -273,11 +273,15 @@ impl<'a> Popup<'a> {
/// In contrast to [`Self::menu`], this will open at the pointer position. /// In contrast to [`Self::menu`], this will open at the pointer position.
pub fn context_menu(response: &Response) -> Self { pub fn context_menu(response: &Response) -> Self {
Self::menu(response) Self::menu(response)
.open_memory( .open_memory(if response.secondary_clicked() {
response Some(SetOpenCommand::Bool(true))
.secondary_clicked() } else if response.clicked() {
.then_some(SetOpenCommand::Bool(true)), // Explicitly close the menu if the widget was clicked
) // Without this, the context menu would stay open if the user clicks the widget
Some(SetOpenCommand::Bool(false))
} else {
None
})
.at_pointer_fixed() .at_pointer_fixed()
} }