mirror of
https://github.com/0PandaDEV/Qopy.git
synced 2025-04-22 05:34:04 +02:00
fix: improve thread safety in hotkey management
This commit is contained in:
parent
66df55017f
commit
2d3732b2f2
1 changed files with 4 additions and 3 deletions
|
@ -18,9 +18,10 @@ struct HotkeyState {
|
|||
registered_hotkey: Option<HotKey>,
|
||||
}
|
||||
|
||||
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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue