From ad493fb44f9a1d15507f0944900906eb54bc79ca Mon Sep 17 00:00:00 2001 From: pandadev <70103896+0PandaDEV@users.noreply.github.com> Date: Wed, 17 Jul 2024 13:33:21 +0200 Subject: [PATCH] fixed hotkey --- app.vue | 18 ------------ src-tauri/Cargo.toml | 2 +- src-tauri/src/hotkeys.rs | 60 ++++++++++++++-------------------------- 3 files changed, 21 insertions(+), 59 deletions(-) diff --git a/app.vue b/app.vue index 47f3ed3..dab0a6e 100644 --- a/app.vue +++ b/app.vue @@ -265,24 +265,6 @@ onMounted(async () => { if (!await isEnabled()) { await enable() } - - if (await isRegistered("MetaLeft+V")) { - await unregister("MetaLeft+V") - } - - await register('MetaLeft+V', (event) => { - if (event.state === "MetaLeft+V") { - if (isVisible.value == true) { - app.hide() - isVisible.value = false; - } else { - app.show() - isVisible.value = true; - selectedItemIndex.value = 0; - } - } - }); - }); const hideApp = async () => { diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index f74df4e..03f2340 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -27,4 +27,4 @@ arboard = "3.4.0" image = "0.25.1" reqwest = { version = "0.12.5", features = ["blocking"] } url = "2.5.2" -regex = "1" \ No newline at end of file +regex = "1" diff --git a/src-tauri/src/hotkeys.rs b/src-tauri/src/hotkeys.rs index 00d21d8..16e472b 100644 --- a/src-tauri/src/hotkeys.rs +++ b/src-tauri/src/hotkeys.rs @@ -1,48 +1,28 @@ use rdev::{listen, EventType, Key}; -use std::sync::{Arc, Mutex, mpsc}; use tauri::Manager; pub fn setup(app_handle: tauri::AppHandle) { - let (tx, rx) = mpsc::channel(); - let meta_pressed = Arc::new(Mutex::new(false)); - - std::thread::spawn({ - let meta_pressed = Arc::clone(&meta_pressed); - move || { - listen(move |event| { - match event.event_type { - EventType::KeyPress(Key::MetaLeft) | EventType::KeyPress(Key::MetaRight) => { - let mut meta = meta_pressed.lock().unwrap(); - *meta = true; - tx.send(event).unwrap(); - } - EventType::KeyRelease(Key::MetaLeft) | EventType::KeyRelease(Key::MetaRight) => { - let mut meta = meta_pressed.lock().unwrap(); - *meta = false; - } - _ => { - tx.send(event).unwrap(); - } - } - }) - .unwrap(); - } - }); - std::thread::spawn(move || { - while let Ok(event) = rx.recv() { - let meta = meta_pressed.lock().unwrap(); - if *meta && matches!(event.event_type, EventType::KeyPress(Key::KeyV)) { - println!("Meta and Key V pressed"); - let window = app_handle.get_webview_window("main").unwrap(); - let is_visible = window.is_visible().unwrap(); - if is_visible { - window.hide().unwrap(); - } else { - window.show().unwrap(); - window.set_focus().unwrap(); + let mut meta_pressed = false; + listen(move |event| { + match event.event_type { + EventType::KeyPress(Key::MetaLeft) | EventType::KeyPress(Key::MetaRight) => { + meta_pressed = true; } + EventType::KeyRelease(Key::MetaLeft) | EventType::KeyRelease(Key::MetaRight) => { + meta_pressed = false; + } + EventType::KeyPress(Key::KeyV) => { + if meta_pressed { + meta_pressed = false; + let window = app_handle.get_webview_window("main").unwrap(); + window.show().unwrap(); + window.set_focus().unwrap(); + } + } + _ => {} } - } + }) + .unwrap(); }); -} +} \ No newline at end of file