Skip to content

Commit ffe2bde

Browse files
committed
fix: dark mode flash in win
1 parent 4345dc2 commit ffe2bde

4 files changed

Lines changed: 26 additions & 18 deletions

File tree

backend/tauri/src/main.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ fn main() -> std::io::Result<()> {
3333
#[allow(unused_mut)]
3434
let mut builder = tauri::Builder::default()
3535
.system_tray(SystemTray::new())
36-
.setup(|app| Ok(resolve::resolve_setup(app)))
36+
.setup(|app| {
37+
resolve::resolve_setup(app);
38+
Ok(())
39+
})
3740
.on_system_tray_event(core::tray::Tray::on_system_tray_event)
3841
.invoke_handler(tauri::generate_handler![
3942
// common

backend/tauri/src/utils/resolve.rs

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,6 @@ pub fn create_window(app_handle: &AppHandle) {
142142

143143
#[cfg(target_os = "windows")]
144144
{
145-
use std::time::Duration;
146-
use tokio::time::sleep;
147145
use window_shadows::set_shadow;
148146

149147
match builder
@@ -161,6 +159,7 @@ pub fn create_window(app_handle: &AppHandle) {
161159
trace_err!(win.set_fullscreen(true), "set win fullscreen");
162160
}
163161
}
162+
trace_err!(set_shadow(&win, true), "set win shadow");
164163
log::trace!("try to calculate the monitor size");
165164
let center = (|| -> Result<bool> {
166165
let mut center = false;
@@ -182,22 +181,22 @@ pub fn create_window(app_handle: &AppHandle) {
182181
trace_err!(win.center(), "set win center");
183182
}
184183

185-
log::trace!("try to create window");
186-
let app_handle = app_handle.clone();
184+
// log::trace!("try to create window");
185+
// let app_handle = app_handle.clone();
187186

188187
// 加点延迟避免界面闪一下
189-
tauri::async_runtime::spawn(async move {
190-
// sleep(Duration::from_millis(888)).await;
191-
192-
if let Some(window) = app_handle.get_window("main") {
193-
trace_err!(set_shadow(&window, true), "set win shadow");
194-
trace_err!(window.show(), "set win visible");
195-
trace_err!(window.unminimize(), "set win unminimize");
196-
trace_err!(window.set_focus(), "set win focus");
197-
} else {
198-
log::error!(target: "app", "failed to create window, get_window is None")
199-
}
200-
});
188+
// tauri::async_runtime::spawn(async move {
189+
// // sleep(Duration::from_millis(888)).await;
190+
191+
// if let Some(window) = app_handle.get_window("main") {
192+
// trace_err!(set_shadow(&window, true), "set win shadow");
193+
// trace_err!(window.show(), "set win visible");
194+
// trace_err!(window.unminimize(), "set win unminimize");
195+
// trace_err!(window.set_focus(), "set win focus");
196+
// } else {
197+
// log::error!(target: "app", "failed to create window, get_window is None")
198+
// }
199+
// });
201200
}
202201
Err(err) => log::error!(target: "app", "failed to create window, {err}"),
203202
}

src/main.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ if (!window.ResizeObserver) {
99

1010
import React from "react";
1111
import { createRoot } from "react-dom/client";
12-
import { RecoilRoot } from "recoil";
1312
import { BrowserRouter } from "react-router-dom";
13+
import { RecoilRoot } from "recoil";
1414
import { BaseErrorBoundary } from "./components/base";
1515
import Layout from "./pages/_layout";
1616
import "./services/i18n";

src/pages/_layout.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,12 @@ export default function Layout() {
7373
break;
7474
}
7575
});
76+
77+
setTimeout(() => {
78+
appWindow.show();
79+
appWindow.unminimize();
80+
appWindow.setFocus();
81+
}, 50);
7682
}, []);
7783

7884
useEffect(() => {

0 commit comments

Comments
 (0)