Browse Source

fix(desktop): add single-instance plugin to prevent multiple windows (#6966)

Junseo5 1 month ago
parent
commit
f510d17bd3
2 changed files with 8 additions and 0 deletions
  1. 1 0
      packages/desktop/src-tauri/Cargo.toml
  2. 7 0
      packages/desktop/src-tauri/src/lib.rs

+ 1 - 0
packages/desktop/src-tauri/Cargo.toml

@@ -29,6 +29,7 @@ tauri-plugin-window-state = "2"
 tauri-plugin-clipboard-manager = "2"
 tauri-plugin-http = "2"
 tauri-plugin-notification = "2"
+tauri-plugin-single-instance = "2"
 
 serde = { version = "1", features = ["derive"] }
 serde_json = "1"

+ 7 - 0
packages/desktop/src-tauri/src/lib.rs

@@ -189,6 +189,13 @@ pub fn run() {
     let updater_enabled = option_env!("TAURI_SIGNING_PRIVATE_KEY").is_some();
 
     let mut builder = tauri::Builder::default()
+        .plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| {
+            // Focus existing window when another instance is launched
+            if let Some(window) = app.get_webview_window("main") {
+                let _ = window.set_focus();
+                let _ = window.unminimize();
+            }
+        }))
         .plugin(tauri_plugin_os::init())
         .plugin(tauri_plugin_window_state::Builder::new().build())
         .plugin(tauri_plugin_store::Builder::new().build())