diff --git a/.changes/fix-deadlock-create-window-from-menu.md b/.changes/fix-deadlock-create-window-from-menu.md new file mode 100644 index 000000000..6ac2fb835 --- /dev/null +++ b/.changes/fix-deadlock-create-window-from-menu.md @@ -0,0 +1,7 @@ +--- +"tauri-runtime-wry": patch +"tauri": patch +--- + +Fixes a deadlock when creating a window from a menu event handler. + \ No newline at end of file diff --git a/core/tauri-runtime-wry/src/lib.rs b/core/tauri-runtime-wry/src/lib.rs index 78460179a..c74c224be 100644 --- a/core/tauri-runtime-wry/src/lib.rs +++ b/core/tauri-runtime-wry/src/lib.rs @@ -2279,8 +2279,10 @@ fn handle_event_loop( let event = MenuEvent { menu_item_id: menu_id.0, }; - let listeners = menu_event_listeners.lock().unwrap(); - let window_menu_event_listeners = listeners.get(&window_id).cloned().unwrap_or_default(); + let window_menu_event_listeners = { + let listeners = menu_event_listeners.lock().unwrap(); + listeners.get(&window_id).cloned().unwrap_or_default() + }; for handler in window_menu_event_listeners.lock().unwrap().values() { handler(&event); }