mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 00:35:38 +08:00
fix: restore window from tray when status bar icon is present
This commit is contained in:
@@ -653,10 +653,13 @@ impl Tray {
|
|||||||
"system_proxy" => feat::toggle_system_proxy(),
|
"system_proxy" => feat::toggle_system_proxy(),
|
||||||
"tun_mode" => feat::toggle_tun_mode(None),
|
"tun_mode" => feat::toggle_tun_mode(None),
|
||||||
"main_window" => {
|
"main_window" => {
|
||||||
|
log::info!(target: "app", "Tray点击事件: 显示主窗口");
|
||||||
if crate::module::lightweight::is_in_lightweight_mode() {
|
if crate::module::lightweight::is_in_lightweight_mode() {
|
||||||
|
log::info!(target: "app", "当前在轻量模式,正在退出轻量模式");
|
||||||
crate::module::lightweight::exit_lightweight_mode();
|
crate::module::lightweight::exit_lightweight_mode();
|
||||||
}
|
}
|
||||||
let _ = resolve::create_window(true);
|
let result = resolve::create_window(true);
|
||||||
|
log::info!(target: "app", "窗口创建/显示结果: {}", result);
|
||||||
}
|
}
|
||||||
_ => {}
|
_ => {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -307,8 +307,17 @@ pub fn create_window(is_show: bool) -> bool {
|
|||||||
if let Some(window) = app_handle.get_webview_window("main") {
|
if let Some(window) = app_handle.get_webview_window("main") {
|
||||||
logging!(info, Type::Window, true, "主窗口已存在,将显示现有窗口");
|
logging!(info, Type::Window, true, "主窗口已存在,将显示现有窗口");
|
||||||
if is_show {
|
if is_show {
|
||||||
|
if window.is_minimized().unwrap_or(false) {
|
||||||
|
logging!(info, Type::Window, true, "窗口已最小化,正在取消最小化");
|
||||||
|
let _ = window.unminimize();
|
||||||
|
}
|
||||||
let _ = window.show();
|
let _ = window.show();
|
||||||
let _ = window.set_focus();
|
let _ = window.set_focus();
|
||||||
|
|
||||||
|
#[cfg(target_os = "macos")]
|
||||||
|
{
|
||||||
|
AppHandleManager::global().set_activation_policy_regular();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user