MCPcopy Create free account
hub / github.com/GCWing/BitFun / startup_window_control

Function startup_window_control

src/apps/desktop/src/api/system_api.rs:468–521  ·  view source on GitHub ↗
(
    state: State<'_, AppState>,
    startup_trace: State<'_, DesktopStartupTrace>,
    app: tauri::AppHandle,
    request: StartupWindowControlRequest,
)

Source from the content-addressed store, hash-verified

466/// Minimal startup-window controls used by the static pre-React splash.
467#[tauri::command]
468pub async fn startup_window_control(
469 state: State<'_, AppState>,
470 startup_trace: State<'_, DesktopStartupTrace>,
471 app: tauri::AppHandle,
472 request: StartupWindowControlRequest,
473) -> Result<(), String> {
474 let Some(window) = app.get_webview_window("main") else {
475 return Err("Main window not found".to_string());
476 };
477
478 match request.action {
479 StartupWindowControlAction::Minimize => {
480 window.minimize().map_err(|error| {
481 format!("Failed to minimize main window during startup: {}", error)
482 })?;
483 }
484 StartupWindowControlAction::ToggleMaximize => {
485 let is_maximized = window.is_maximized().unwrap_or(false);
486 if is_maximized {
487 window.unmaximize().map_err(|error| {
488 format!("Failed to restore main window during startup: {}", error)
489 })?;
490 } else {
491 window.maximize().map_err(|error| {
492 format!("Failed to maximize main window during startup: {}", error)
493 })?;
494 }
495 }
496 StartupWindowControlAction::Close => {
497 let behavior = state
498 .config_service
499 .get_config::<String>(Some("app.close_button_behavior"))
500 .await
501 .unwrap_or_else(|_| "minimize_to_tray".to_string());
502
503 if behavior == "quit" {
504 log::info!("Quit requested from startup window control");
505 crate::crash_diagnostics::mark_clean_shutdown("startup_window_control");
506 crate::perform_process_exit_cleanup();
507 app.exit(0);
508 } else {
509 if let Err(error) = crate::tray::setup_tray(&app, &startup_trace) {
510 log::warn!("Failed to initialize tray before startup close: {}", error);
511 }
512 window.hide().map_err(|error| {
513 format!("Failed to hide main window during startup close: {}", error)
514 })?;
515 log::info!("Main window hidden from startup window control");
516 }
517 }
518 }
519
520 Ok(())
521}
522
523/// Toggle OS-level fullscreen for the Desktop main window.
524///

Callers

nothing calls this directly

Calls 4

mark_clean_shutdownFunction · 0.85
setup_trayFunction · 0.85
hideMethod · 0.45

Tested by

no test coverage detected