mirror of
https://github.com/0PandaDEV/Qopy.git
synced 2025-04-21 13:14:04 +02:00
fix: windows build error
This commit is contained in:
parent
b712d23a7b
commit
6250a3e84b
1 changed files with 20 additions and 14 deletions
|
@ -4,18 +4,18 @@ use global_hotkey::{
|
||||||
GlobalHotKeyEvent, GlobalHotKeyManager, HotKeyState,
|
GlobalHotKeyEvent, GlobalHotKeyManager, HotKeyState,
|
||||||
};
|
};
|
||||||
use std::str::FromStr;
|
use std::str::FromStr;
|
||||||
use std::sync::Mutex;
|
use std::cell::RefCell;
|
||||||
use tauri::{AppHandle, Manager, Listener};
|
use tauri::{AppHandle, Manager, Listener};
|
||||||
|
|
||||||
lazy_static::lazy_static! {
|
thread_local! {
|
||||||
static ref HOTKEY_MANAGER: Mutex<Option<GlobalHotKeyManager>> = Mutex::new(None);
|
static HOTKEY_MANAGER: RefCell<Option<GlobalHotKeyManager>> = RefCell::new(None);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setup(app_handle: tauri::AppHandle) {
|
pub fn setup(app_handle: tauri::AppHandle) {
|
||||||
let app_handle_clone = app_handle.clone();
|
let app_handle_clone = app_handle.clone();
|
||||||
|
|
||||||
let manager = GlobalHotKeyManager::new().expect("Failed to initialize hotkey manager");
|
let manager = GlobalHotKeyManager::new().expect("Failed to initialize hotkey manager");
|
||||||
*HOTKEY_MANAGER.lock().unwrap() = Some(manager);
|
HOTKEY_MANAGER.with(|m| *m.borrow_mut() = Some(manager));
|
||||||
|
|
||||||
let rt = app_handle.state::<tokio::runtime::Runtime>();
|
let rt = app_handle.state::<tokio::runtime::Runtime>();
|
||||||
let initial_keybind = rt.block_on(crate::api::database::get_keybind(app_handle_clone.clone()))
|
let initial_keybind = rt.block_on(crate::api::database::get_keybind(app_handle_clone.clone()))
|
||||||
|
@ -33,9 +33,11 @@ pub fn setup(app_handle: tauri::AppHandle) {
|
||||||
let payload_str = event.payload().to_string();
|
let payload_str = event.payload().to_string();
|
||||||
|
|
||||||
if let Ok(old_hotkey) = parse_hotkey(&initial_shortcut_for_update) {
|
if let Ok(old_hotkey) = parse_hotkey(&initial_shortcut_for_update) {
|
||||||
if let Some(manager) = HOTKEY_MANAGER.lock().unwrap().as_ref() {
|
HOTKEY_MANAGER.with(|manager| {
|
||||||
let _ = manager.unregister(old_hotkey);
|
if let Some(manager) = manager.borrow().as_ref() {
|
||||||
}
|
let _ = manager.unregister(old_hotkey);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Err(e) = register_shortcut(&payload_str) {
|
if let Err(e) = register_shortcut(&payload_str) {
|
||||||
|
@ -47,9 +49,11 @@ pub fn setup(app_handle: tauri::AppHandle) {
|
||||||
let payload_str = event.payload().to_string();
|
let payload_str = event.payload().to_string();
|
||||||
|
|
||||||
if let Ok(old_hotkey) = parse_hotkey(&initial_shortcut_for_save) {
|
if let Ok(old_hotkey) = parse_hotkey(&initial_shortcut_for_save) {
|
||||||
if let Some(manager) = HOTKEY_MANAGER.lock().unwrap().as_ref() {
|
HOTKEY_MANAGER.with(|manager| {
|
||||||
let _ = manager.unregister(old_hotkey);
|
if let Some(manager) = manager.borrow().as_ref() {
|
||||||
}
|
let _ = manager.unregister(old_hotkey);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Err(e) = register_shortcut(&payload_str) {
|
if let Err(e) = register_shortcut(&payload_str) {
|
||||||
|
@ -77,10 +81,12 @@ pub fn setup(app_handle: tauri::AppHandle) {
|
||||||
|
|
||||||
fn register_shortcut(shortcut: &str) -> Result<(), Box<dyn std::error::Error>> {
|
fn register_shortcut(shortcut: &str) -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let hotkey = parse_hotkey(shortcut)?;
|
let hotkey = parse_hotkey(shortcut)?;
|
||||||
if let Some(manager) = HOTKEY_MANAGER.lock().unwrap().as_ref() {
|
HOTKEY_MANAGER.with(|manager| {
|
||||||
manager.register(hotkey)?;
|
if let Some(manager) = manager.borrow().as_ref() {
|
||||||
}
|
manager.register(hotkey)?;
|
||||||
Ok(())
|
}
|
||||||
|
Ok(())
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
fn parse_hotkey(shortcut: &str) -> Result<HotKey, Box<dyn std::error::Error>> {
|
fn parse_hotkey(shortcut: &str) -> Result<HotKey, Box<dyn std::error::Error>> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue