fix(chrome): P5-47 — Mica vs frameless conflict broke custom window chrome
Root cause: lib.rs applies a Mica backdrop to the main window at startup; set_custom_chrome then stripped the frame with set_decorations(false), and Mica + frameless is a broken combination on Windows (DWM backdrop glitches the whole surface). - set_custom_chrome: clear_mica() before undecorating, re-apply_mica() when restoring the native frame; set_shadow(true) so the frameless window keeps its drop shadow + resize borders. - window-state plugin: exclude StateFlags::DECORATIONS — the chrome toggle owns the decorated flag; restoring a saved decorated=false at startup would recreate the Mica-on-frameless glitch before the web side loads. Pairs with the web-side TitleBar drag fix (explicit window_start_drag on mousedown instead of data-tauri-drag-region) in the cinny repo. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+13
-1
@@ -411,7 +411,19 @@ pub fn run() {
|
||||
native::toast::show_rich_toast,
|
||||
])
|
||||
.plugin(tauri_plugin_localhost::Builder::new(port).build())
|
||||
.plugin(tauri_plugin_window_state::Builder::default().build())
|
||||
.plugin(
|
||||
// DECORATIONS is excluded: the custom-chrome toggle (set_custom_chrome)
|
||||
// owns the decorated flag. Letting window-state restore a saved
|
||||
// decorated=false at startup would re-create the frameless window
|
||||
// BEFORE lib.rs applies Mica (a broken combination) and before the web
|
||||
// side has pushed the user's current setting.
|
||||
tauri_plugin_window_state::Builder::default()
|
||||
.with_state_flags(
|
||||
tauri_plugin_window_state::StateFlags::all()
|
||||
& !tauri_plugin_window_state::StateFlags::DECORATIONS,
|
||||
)
|
||||
.build(),
|
||||
)
|
||||
.plugin(tauri_plugin_opener::init())
|
||||
.plugin(tauri_plugin_notification::init())
|
||||
.plugin(tauri_plugin_deep_link::init());
|
||||
|
||||
Reference in New Issue
Block a user