修复folder窗口的大小状态未保持上次的位置和状态

This commit is contained in:
xintaofei
2026-03-08 20:40:59 +08:00
parent 9b9307f2b5
commit 5b416bd3bf
2 changed files with 18 additions and 3 deletions

View File

@@ -16,6 +16,10 @@ pub struct CommitWindowState {
owner_by_commit_label: Mutex<HashMap<String, String>>,
}
pub fn folder_window_label(folder_id: i32) -> String {
format!("folder-{folder_id}")
}
pub(crate) fn apply_platform_window_style<'a, R, M>(
builder: WebviewWindowBuilder<'a, R, M>,
) -> WebviewWindowBuilder<'a, R, M>
@@ -208,8 +212,19 @@ pub async fn open_folder_window(
.await
.map_err(AppCommandError::from)?;
// Create folder window with unique label
let label = format!("folder-{}", uuid::Uuid::new_v4());
let label = folder_window_label(entry.id);
if let Some(existing) = app.get_webview_window(&label) {
ensure_windows_undecorated(&existing);
let _ = existing.unminimize();
existing.set_focus().map_err(|e| {
AppCommandError::window("Failed to focus folder window", e.to_string())
})?;
if let Some(w) = app.get_webview_window("welcome") {
let _ = w.close();
}
return Ok(());
}
let url = WebviewUrl::App(format!("folder?id={}", entry.id).into());
let builder = WebviewWindowBuilder::new(&app, &label, url)
.title(&entry.name)

View File

@@ -74,7 +74,7 @@ pub fn run() {
let _ = windows::open_welcome_window(app.handle());
} else {
for entry in &open_folders {
let label = format!("folder-{}", uuid::Uuid::new_v4());
let label = windows::folder_window_label(entry.id);
let url = tauri::WebviewUrl::App(format!("folder?id={}", entry.id).into());
let builder = tauri::WebviewWindowBuilder::new(app, &label, url)
.title(&entry.name)