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>,
|
registered_hotkey: Option<HotKey>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsafe impl Send for HotkeyState {}
|
||||||
|
|
||||||
pub fn setup(app_handle: tauri::AppHandle) {
|
pub fn setup(app_handle: tauri::AppHandle) {
|
||||||
let state = Arc::new(Mutex::new(HotkeyState::default()));
|
let state = Arc::new(Mutex::new(HotkeyState::default()));
|
||||||
|
|
||||||
let manager = match GlobalHotKeyManager::new() {
|
let manager = match GlobalHotKeyManager::new() {
|
||||||
Ok(manager) => manager,
|
Ok(manager) => manager,
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
|
@ -43,7 +44,7 @@ pub fn setup(app_handle: tauri::AppHandle) {
|
||||||
eprintln!("Error registering initial shortcut: {:?}", e);
|
eprintln!("Error registering initial shortcut: {:?}", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
let state_clone = state.clone();
|
let state_clone = Arc::clone(&state);
|
||||||
app_handle.listen("update-shortcut", move |event| {
|
app_handle.listen("update-shortcut", move |event| {
|
||||||
let payload_str = event.payload().replace("\\\"", "\"");
|
let payload_str = event.payload().replace("\\\"", "\"");
|
||||||
let trimmed_str = payload_str.trim_matches('"');
|
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| {
|
app_handle.listen("save_keybind", move |event| {
|
||||||
let payload_str = event.payload().to_string();
|
let payload_str = event.payload().to_string();
|
||||||
unregister_current_hotkey(&state_clone);
|
unregister_current_hotkey(&state_clone);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue