chore: update

This commit is contained in:
huzibaca
2024-09-22 15:59:59 +08:00
parent a5c871e933
commit 4b7ffa1465
2 changed files with 39 additions and 38 deletions

View File

@@ -10,7 +10,7 @@ use crate::{
use anyhow::Result; use anyhow::Result;
use tauri::{ use tauri::{
menu::CheckMenuItem, menu::CheckMenuItem,
tray::{MouseButton, MouseButtonState, TrayIconEvent}, tray::{MouseButton, MouseButtonState, TrayIconBuilder, TrayIconEvent},
}; };
use tauri::{ use tauri::{
menu::{MenuEvent, MenuItem, PredefinedMenuItem, Submenu}, menu::{MenuEvent, MenuItem, PredefinedMenuItem, Submenu},
@@ -20,46 +20,47 @@ use tauri::{AppHandle, Manager};
pub struct Tray {} pub struct Tray {}
impl Tray { impl Tray {
pub fn update_systray(app_handle: &AppHandle) -> Result<()> { pub fn create_systray(app_handle: &AppHandle) -> Result<()> {
let tray = app_handle.tray_by_id("main").unwrap(); let _ = TrayIconBuilder::with_id("main")
.on_tray_icon_event(|tray, event| {
let tray_event = { Config::verge().latest().tray_event.clone() };
let tray_event: String = tray_event.unwrap_or("main_window".into());
tray.on_tray_icon_event(|tray, event| { #[cfg(target_os = "macos")]
let tray_event = { Config::verge().latest().tray_event.clone() }; if let TrayIconEvent::Click {
let tray_event: String = tray_event.unwrap_or("main_window".into()); button: MouseButton::Right,
button_state: MouseButtonState::Down,
#[cfg(target_os = "macos")] ..
if let TrayIconEvent::Click { } = event
button: MouseButton::Right, {
button_state: MouseButtonState::Down, let app = tray.app_handle();
.. match tray_event.as_str() {
} = event "system_proxy" => feat::toggle_system_proxy(),
{ "tun_mode" => feat::toggle_tun_mode(),
let app = tray.app_handle(); "main_window" => resolve::create_window(app),
match tray_event.as_str() { _ => {}
"system_proxy" => feat::toggle_system_proxy(), }
"tun_mode" => feat::toggle_tun_mode(),
"main_window" => resolve::create_window(app),
_ => {}
} }
}
#[cfg(not(target_os = "macos"))] #[cfg(not(target_os = "macos"))]
if let TrayIconEvent::Click { if let TrayIconEvent::Click {
button: MouseButton::Left, button: MouseButton::Left,
button_state: MouseButtonState::Down, button_state: MouseButtonState::Down,
.. ..
} = event } = event
{ {
let app = tray.app_handle(); let app = tray.app_handle();
match tray_event.as_str() { match tray_event.as_str() {
"system_proxy" => feat::toggle_system_proxy(), "system_proxy" => feat::toggle_system_proxy(),
"tun_mode" => feat::toggle_tun_mode(), "tun_mode" => feat::toggle_tun_mode(),
"main_window" => resolve::create_window(app), "main_window" => resolve::create_window(app),
_ => {} _ => {}
}
} }
} })
}); .on_menu_event(on_menu_event)
tray.on_menu_event(on_menu_event); .menu_on_left_click(false)
.build(app_handle);
Ok(()) Ok(())
} }

View File

@@ -85,7 +85,7 @@ pub async fn resolve_setup(app: &mut App) {
server::embed_server(app.app_handle()); server::embed_server(app.app_handle());
log::trace!("init system tray"); log::trace!("init system tray");
log_err!(tray::Tray::update_systray(&app.app_handle())); log_err!(tray::Tray::create_systray(&app.app_handle()));
let silent_start = { Config::verge().data().enable_silent_start }; let silent_start = { Config::verge().data().enable_silent_start };
if !silent_start.unwrap_or(false) { if !silent_start.unwrap_or(false) {