mirror of
https://github.com/0PandaDEV/Qopy.git
synced 2025-04-21 13:14:04 +02:00
fixed hotkey
This commit is contained in:
parent
0ee166a3c0
commit
ad493fb44f
3 changed files with 21 additions and 59 deletions
18
app.vue
18
app.vue
|
@ -265,24 +265,6 @@ onMounted(async () => {
|
||||||
if (!await isEnabled()) {
|
if (!await isEnabled()) {
|
||||||
await enable()
|
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 () => {
|
const hideApp = async () => {
|
||||||
|
|
|
@ -1,48 +1,28 @@
|
||||||
use rdev::{listen, EventType, Key};
|
use rdev::{listen, EventType, Key};
|
||||||
use std::sync::{Arc, Mutex, mpsc};
|
|
||||||
use tauri::Manager;
|
use tauri::Manager;
|
||||||
|
|
||||||
pub fn setup(app_handle: tauri::AppHandle) {
|
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 || {
|
std::thread::spawn(move || {
|
||||||
while let Ok(event) = rx.recv() {
|
let mut meta_pressed = false;
|
||||||
let meta = meta_pressed.lock().unwrap();
|
listen(move |event| {
|
||||||
if *meta && matches!(event.event_type, EventType::KeyPress(Key::KeyV)) {
|
match event.event_type {
|
||||||
println!("Meta and Key V pressed");
|
EventType::KeyPress(Key::MetaLeft) | EventType::KeyPress(Key::MetaRight) => {
|
||||||
let window = app_handle.get_webview_window("main").unwrap();
|
meta_pressed = true;
|
||||||
let is_visible = window.is_visible().unwrap();
|
|
||||||
if is_visible {
|
|
||||||
window.hide().unwrap();
|
|
||||||
} else {
|
|
||||||
window.show().unwrap();
|
|
||||||
window.set_focus().unwrap();
|
|
||||||
}
|
}
|
||||||
|
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();
|
||||||
});
|
});
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue