mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-04 23:43:44 +08:00
feat(hotkey): macos support CMD+W to close window as default
This commit is contained in:
parent
618ba52bca
commit
84a5cf6b89
@ -148,6 +148,8 @@ impl Hotkey {
|
||||
"toggle_system_proxy" => || feat::toggle_system_proxy(),
|
||||
"toggle_tun_mode" => || feat::toggle_tun_mode(None),
|
||||
"quit" => || feat::quit(Some(0)),
|
||||
#[cfg(target_os = "macos")]
|
||||
"hide" => || feat::hide(),
|
||||
|
||||
_ => {
|
||||
println!("Invalid function: {}", func);
|
||||
|
@ -1,3 +1,5 @@
|
||||
#[cfg(target_os = "macos")]
|
||||
use crate::AppHandleManager;
|
||||
use crate::{
|
||||
config::Config,
|
||||
core::{handle, sysopt, CoreManager},
|
||||
@ -137,3 +139,13 @@ pub fn quit(code: Option<i32>) {
|
||||
app_handle.exit(code.unwrap_or(0));
|
||||
});
|
||||
}
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
pub fn hide() {
|
||||
if let Some(window) = handle::Handle::global().get_window() {
|
||||
if window.is_visible().unwrap_or(false) {
|
||||
AppHandleManager::global().set_activation_policy_accessory();
|
||||
let _ = window.hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -290,6 +290,7 @@ pub fn run() {
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
log_err!(hotkey::Hotkey::global().register("CMD+Q", "quit"));
|
||||
log_err!(hotkey::Hotkey::global().register("CMD+W", "hide"));
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
@ -310,6 +311,7 @@ pub fn run() {
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
log_err!(hotkey::Hotkey::global().unregister("CMD+Q"));
|
||||
log_err!(hotkey::Hotkey::global().unregister("CMD+W"));
|
||||
}
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
{
|
||||
@ -329,6 +331,7 @@ pub fn run() {
|
||||
#[cfg(target_os = "macos")]
|
||||
{
|
||||
log_err!(hotkey::Hotkey::global().unregister("CMD+Q"));
|
||||
log_err!(hotkey::Hotkey::global().unregister("CMD+W"));
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
|
Loading…
x
Reference in New Issue
Block a user