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.
pub fn context_menu(response: &Response) -> Self {
Self::menu(response)
.open_memory(
response
.secondary_clicked()
.then_some(SetOpenCommand::Bool(true)),
)
.open_memory(if response.secondary_clicked() {
Some(SetOpenCommand::Bool(true))
} else if response.clicked() {
// 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()
}