diff --git a/iced b/iced index 717bc5db..fc9d49eb 160000 --- a/iced +++ b/iced @@ -1 +1 @@ -Subproject commit 717bc5dbfbc8f78e367e08e76a9572ee0ebc1f32 +Subproject commit fc9d49eb2f830fe394252ff6799d59ad828243bc diff --git a/src/widget/menu/menu_bar.rs b/src/widget/menu/menu_bar.rs index eddc4f3a..2c355bf4 100644 --- a/src/widget/menu/menu_bar.rs +++ b/src/widget/menu/menu_bar.rs @@ -375,13 +375,14 @@ where let hovered_root = layout .children() .position(|lo| view_cursor.is_over(lo.bounds())); - - if old_active_root - .zip(hovered_root) - .is_some_and(|r| r.0 == r.1) + if hovered_root.is_none() + || old_active_root + .zip(hovered_root) + .is_some_and(|r| r.0 == r.1) { return; } + let (id, root_list) = my_state.inner.with_data_mut(|state| { if let Some(id) = state.popup_id.get(&self.window_id).copied() { // close existing popups