diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index a39668e..6e3f26c 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -18,7 +18,7 @@ crate-type = ["staticlib", "cdylib", "rlib"] tauri-build = { version = "2.0.0", features = [] } [dependencies] -tauri = { version = "2.0.0", features = ["macos-private-api", "tray-icon", "image-png"] } +tauri = { version = "2.0.0", features = ["macos-private-api", "tray-icon", "image-png", "unstable"] } tauri-plugin-shell = "2.0.0" serde = { version = "1", features = ["derive"] } serde_json = "1" diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 0da8451..e095ae9 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -227,6 +227,7 @@ fn enable_tray(app: &mut tauri::App) { image::Image, menu::{Menu, MenuItem}, tray::TrayIconBuilder, + webview::WebviewBuilder, }; let image = Image::from_path("icons/32x32.png").unwrap(); @@ -240,10 +241,26 @@ fn enable_tray(app: &mut tauri::App) { .on_menu_event(|app, event| match event.id.as_ref() { "settings" => { println!("settings menu item was clicked"); - let app_handle = app.app_handle(); - if let Some(window) = app_handle.get_webview_window("settings") { - let _ = window.show(); - let _ = window.set_focus(); + let window = app.get_webview_window("settings"); + if let Some(window) = window { + window.show().unwrap(); + window.set_focus().unwrap(); + } else { + let window = tauri::window::WindowBuilder::new(app, "Settings") + .build() + .unwrap(); + let webview_builder = WebviewBuilder::new( + "Settings", + tauri::WebviewUrl::App("index.html".into()), + ); + let webview = window + .add_child( + webview_builder, + tauri::LogicalPosition::new(0, 0), + window.inner_size().unwrap(), + ) + .unwrap(); + } } "quit" => {