From d7f77ebfe1907f6993ba54bbd1b5c8544cdf7214 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Thu, 6 Jun 2024 10:36:39 +0100 Subject: feat(ui): setup single-instance (#2093) --- ui/backend/src/main.rs | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'ui/backend/src/main.rs') diff --git a/ui/backend/src/main.rs b/ui/backend/src/main.rs index 88c9ae87..f07e0c95 100644 --- a/ui/backend/src/main.rs +++ b/ui/backend/src/main.rs @@ -2,14 +2,15 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] use std::path::PathBuf; -use time::format_description::well_known::Rfc3339; -use atuin_client::settings::Settings; +use tauri::{AppHandle, Manager}; +use time::format_description::well_known::Rfc3339; mod db; mod dotfiles; mod store; +use atuin_client::settings::Settings; use atuin_client::{ encryption, history::HISTORY_TAG, record::sqlite_store::SqliteStore, record::store::Store, }; @@ -165,6 +166,17 @@ async fn home_info() -> Result { Ok(info) } +fn show_window(app: &AppHandle) { + let windows = app.webview_windows(); + + windows + .values() + .next() + .expect("Sorry, no window found") + .set_focus() + .expect("Can't Bring Window to Focus"); +} + fn main() { tauri::Builder::default() .invoke_handler(tauri::generate_handler![ @@ -186,6 +198,9 @@ fn main() { ]) .plugin(tauri_plugin_sql::Builder::default().build()) .plugin(tauri_plugin_http::init()) + .plugin(tauri_plugin_single_instance::init(|app, args, cwd| { + let _ = show_window(app); + })) .run(tauri::generate_context!()) .expect("error while running tauri application"); } -- cgit v1.3.1