mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 13:23:44 +08:00
fix: windows different tray icon display
This commit is contained in:
parent
2bcd653a56
commit
8ec499f631
@ -2,13 +2,13 @@ use once_cell::sync::OnceCell;
|
|||||||
use tauri::tray::TrayIconBuilder;
|
use tauri::tray::TrayIconBuilder;
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
pub mod speed_rate;
|
pub mod speed_rate;
|
||||||
use crate::module::mihomo::Rate;
|
|
||||||
use crate::{
|
use crate::{
|
||||||
cmd,
|
cmd,
|
||||||
config::Config,
|
config::Config,
|
||||||
feat, resolve,
|
feat,
|
||||||
utils::resolve::VERSION,
|
module::mihomo::Rate,
|
||||||
utils::{dirs, i18n::t},
|
resolve,
|
||||||
|
utils::{dirs, i18n::t, resolve::VERSION},
|
||||||
};
|
};
|
||||||
|
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
@ -22,12 +22,10 @@ use parking_lot::RwLock;
|
|||||||
pub use speed_rate::{SpeedRate, Traffic};
|
pub use speed_rate::{SpeedRate, Traffic};
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
use tauri::menu::{CheckMenuItem, IsMenuItem};
|
|
||||||
use tauri::{App, AppHandle};
|
|
||||||
use tauri::{
|
use tauri::{
|
||||||
menu::{MenuEvent, MenuItem, PredefinedMenuItem, Submenu},
|
menu::{CheckMenuItem, IsMenuItem, MenuEvent, MenuItem, PredefinedMenuItem, Submenu},
|
||||||
tray::{MouseButton, MouseButtonState, TrayIconEvent},
|
tray::{MouseButton, MouseButtonState, TrayIconEvent},
|
||||||
Wry,
|
App, AppHandle, Wry,
|
||||||
};
|
};
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
use tokio::sync::broadcast;
|
use tokio::sync::broadcast;
|
||||||
@ -68,12 +66,14 @@ impl Tray {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn create_systray(&self, app: &App) -> Result<()> {
|
pub fn create_systray(&self, app: &App) -> Result<()> {
|
||||||
let builder = TrayIconBuilder::with_id("main")
|
let builder =
|
||||||
.icon(app.default_window_icon().unwrap().clone())
|
TrayIconBuilder::with_id("main");
|
||||||
.icon_as_template(false);
|
|
||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
let builder = builder.show_menu_on_left_click(false);
|
let builder = builder
|
||||||
|
.icon(app.default_window_icon().unwrap().clone())
|
||||||
|
.icon_as_template(false)
|
||||||
|
.show_menu_on_left_click(false);
|
||||||
|
|
||||||
let tray = builder.build(app)?;
|
let tray = builder.build(app)?;
|
||||||
|
|
||||||
@ -402,17 +402,20 @@ fn create_tray_menu(
|
|||||||
let profile_menu_items: Vec<CheckMenuItem<Wry>> = profile_uid_and_name
|
let profile_menu_items: Vec<CheckMenuItem<Wry>> = profile_uid_and_name
|
||||||
.iter()
|
.iter()
|
||||||
.map(|(profile_uid, profile_name)| {
|
.map(|(profile_uid, profile_name)| {
|
||||||
let is_current_profile = Config::profiles().data().is_current_profile_index(profile_uid.to_string());
|
let is_current_profile = Config::profiles()
|
||||||
CheckMenuItem::with_id(
|
.data()
|
||||||
app_handle,
|
.is_current_profile_index(profile_uid.to_string());
|
||||||
&format!("profiles_{}", profile_uid),
|
CheckMenuItem::with_id(
|
||||||
t(&profile_name),
|
app_handle,
|
||||||
true,
|
&format!("profiles_{}", profile_uid),
|
||||||
is_current_profile,
|
t(&profile_name),
|
||||||
None::<&str>,
|
true,
|
||||||
)
|
is_current_profile,
|
||||||
.unwrap()
|
None::<&str>,
|
||||||
}).collect();
|
)
|
||||||
|
.unwrap()
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
let profile_menu_items: Vec<&dyn IsMenuItem<Wry>> = profile_menu_items
|
let profile_menu_items: Vec<&dyn IsMenuItem<Wry>> = profile_menu_items
|
||||||
.iter()
|
.iter()
|
||||||
.map(|item| item as &dyn IsMenuItem<Wry>)
|
.map(|item| item as &dyn IsMenuItem<Wry>)
|
||||||
@ -463,7 +466,8 @@ fn create_tray_menu(
|
|||||||
t("Profiles"),
|
t("Profiles"),
|
||||||
true,
|
true,
|
||||||
&profile_menu_items,
|
&profile_menu_items,
|
||||||
).unwrap();
|
)
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
let system_proxy = &CheckMenuItem::with_id(
|
let system_proxy = &CheckMenuItem::with_id(
|
||||||
app_handle,
|
app_handle,
|
||||||
@ -607,7 +611,7 @@ fn on_menu_event(_: &AppHandle, event: MenuEvent) {
|
|||||||
"quit" => {
|
"quit" => {
|
||||||
println!("quit");
|
println!("quit");
|
||||||
feat::quit(Some(0));
|
feat::quit(Some(0));
|
||||||
},
|
}
|
||||||
id if id.starts_with("profiles_") => {
|
id if id.starts_with("profiles_") => {
|
||||||
let profile_index = &id["profiles_".len()..];
|
let profile_index = &id["profiles_".len()..];
|
||||||
feat::toggle_proxy_profile(profile_index.into());
|
feat::toggle_proxy_profile(profile_index.into());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user