From 8b14a5f0d8e46e5d6b467e7498d42a2068afcf07 Mon Sep 17 00:00:00 2001 From: MystiPanda Date: Fri, 8 Dec 2023 13:10:35 +0800 Subject: [PATCH] perf: Improves window creation speed --- src-tauri/src/utils/resolve.rs | 21 ++++++--------------- src/pages/_layout.tsx | 5 +++++ 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src-tauri/src/utils/resolve.rs b/src-tauri/src/utils/resolve.rs index ccdc4f5e..7ebed08a 100644 --- a/src-tauri/src/utils/resolve.rs +++ b/src-tauri/src/utils/resolve.rs @@ -107,6 +107,7 @@ pub fn create_window(app_handle: &AppHandle) { tauri::WindowUrl::App("index.html".into()), ) .title("Clash Verge") + .visible(false) .fullscreen(false) .min_inner_size(600.0, 520.0); @@ -138,8 +139,6 @@ pub fn create_window(app_handle: &AppHandle) { #[cfg(target_os = "windows")] { - use std::time::Duration; - use tokio::time::sleep; use window_shadows::set_shadow; match builder @@ -173,19 +172,11 @@ pub fn create_window(app_handle: &AppHandle) { log::trace!("try to create window"); let app_handle = app_handle.clone(); - // 加点延迟避免界面闪一下 - tauri::async_runtime::spawn(async move { - sleep(Duration::from_millis(888)).await; - - if let Some(window) = app_handle.get_window("main") { - trace_err!(set_shadow(&window, true), "set win shadow"); - trace_err!(window.show(), "set win visible"); - trace_err!(window.unminimize(), "set win unminimize"); - trace_err!(window.set_focus(), "set win focus"); - } else { - log::error!(target: "app", "failed to create window, get_window is None") - } - }); + if let Some(window) = app_handle.get_window("main") { + trace_err!(set_shadow(&window, true), "set win shadow"); + } else { + log::error!(target: "app", "failed to create window, get_window is None") + } } Err(err) => log::error!(target: "app", "failed to create window, {err}"), } diff --git a/src/pages/_layout.tsx b/src/pages/_layout.tsx index 067c8739..8903f0c7 100644 --- a/src/pages/_layout.tsx +++ b/src/pages/_layout.tsx @@ -71,6 +71,11 @@ const Layout = () => { break; } }); + setTimeout(() => { + void appWindow.unminimize(); + void appWindow.show(); + void appWindow.setFocus(); + }, 50); }, []); useEffect(() => {