feat(desktop): properly integrate window controls on windows (#9835)

This commit is contained in:
Brendan Allan
2026-01-21 22:35:05 +08:00
committed by GitHub
parent 7ed448a7e8
commit d00b8df770
8 changed files with 373 additions and 23 deletions

View File

@@ -15,6 +15,8 @@ use std::{
time::{Duration, Instant},
};
use tauri::{AppHandle, LogicalSize, Manager, RunEvent, State, WebviewWindowBuilder};
#[cfg(windows)]
use tauri_plugin_decorum::WebviewWindowExt;
use tauri_plugin_dialog::{DialogExt, MessageDialogButtons, MessageDialogResult};
use tauri_plugin_shell::process::{CommandChild, CommandEvent};
use tauri_plugin_store::StoreExt;
@@ -275,6 +277,7 @@ pub fn run() {
.plugin(tauri_plugin_http::init())
.plugin(tauri_plugin_notification::init())
.plugin(PinchZoomDisablePlugin)
.plugin(tauri_plugin_decorum::init())
.invoke_handler(tauri::generate_handler![
kill_sidecar,
install_cli,
@@ -319,7 +322,13 @@ pub fn run() {
.title_bar_style(tauri::TitleBarStyle::Overlay)
.hidden_title(true);
let _window = window_builder.build().expect("Failed to create window");
#[cfg(windows)]
let window_builder = window_builder.decorations(false);
let window = window_builder.build().expect("Failed to create window");
#[cfg(windows)]
let _ = window.create_overlay_titlebar();
let (tx, rx) = oneshot::channel();
app.manage(ServerState::new(None, rx));