From 2d3732b2f2557d6d3b4d5896596957299b04c95c Mon Sep 17 00:00:00 2001 From: pandadev <70103896+0PandaDEV@users.noreply.github.com> Date: Wed, 29 Jan 2025 17:39:10 +0100 Subject: [PATCH] fix: improve thread safety in hotkey management --- src-tauri/src/api/hotkeys.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src-tauri/src/api/hotkeys.rs b/src-tauri/src/api/hotkeys.rs index 87cb11a..6152ea0 100644 --- a/src-tauri/src/api/hotkeys.rs +++ b/src-tauri/src/api/hotkeys.rs @@ -18,9 +18,10 @@ struct HotkeyState { registered_hotkey: Option, } +unsafe impl Send for HotkeyState {} + pub fn setup(app_handle: tauri::AppHandle) { let state = Arc::new(Mutex::new(HotkeyState::default())); - let manager = match GlobalHotKeyManager::new() { Ok(manager) => manager, Err(err) => { @@ -43,7 +44,7 @@ pub fn setup(app_handle: tauri::AppHandle) { eprintln!("Error registering initial shortcut: {:?}", e); } - let state_clone = state.clone(); + let state_clone = Arc::clone(&state); app_handle.listen("update-shortcut", move |event| { let payload_str = event.payload().replace("\\\"", "\""); let trimmed_str = payload_str.trim_matches('"'); @@ -55,7 +56,7 @@ pub fn setup(app_handle: tauri::AppHandle) { } }); - let state_clone = state.clone(); + let state_clone = Arc::clone(&state); app_handle.listen("save_keybind", move |event| { let payload_str = event.payload().to_string(); unregister_current_hotkey(&state_clone);