perf: Improves window creation speed

This commit is contained in:
MystiPanda 2023-12-08 13:10:35 +08:00
parent c5855119d8
commit 8b14a5f0d8
2 changed files with 11 additions and 15 deletions

View File

@ -107,6 +107,7 @@ pub fn create_window(app_handle: &AppHandle) {
tauri::WindowUrl::App("index.html".into()), tauri::WindowUrl::App("index.html".into()),
) )
.title("Clash Verge") .title("Clash Verge")
.visible(false)
.fullscreen(false) .fullscreen(false)
.min_inner_size(600.0, 520.0); .min_inner_size(600.0, 520.0);
@ -138,8 +139,6 @@ pub fn create_window(app_handle: &AppHandle) {
#[cfg(target_os = "windows")] #[cfg(target_os = "windows")]
{ {
use std::time::Duration;
use tokio::time::sleep;
use window_shadows::set_shadow; use window_shadows::set_shadow;
match builder match builder
@ -173,19 +172,11 @@ pub fn create_window(app_handle: &AppHandle) {
log::trace!("try to create window"); log::trace!("try to create window");
let app_handle = app_handle.clone(); let app_handle = app_handle.clone();
// 加点延迟避免界面闪一下 if let Some(window) = app_handle.get_window("main") {
tauri::async_runtime::spawn(async move { trace_err!(set_shadow(&window, true), "set win shadow");
sleep(Duration::from_millis(888)).await; } 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");
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")
}
});
} }
Err(err) => log::error!(target: "app", "failed to create window, {err}"), Err(err) => log::error!(target: "app", "failed to create window, {err}"),
} }

View File

@ -71,6 +71,11 @@ const Layout = () => {
break; break;
} }
}); });
setTimeout(() => {
void appWindow.unminimize();
void appWindow.show();
void appWindow.setFocus();
}, 50);
}, []); }, []);
useEffect(() => { useEffect(() => {