fix(stage-tamagotchi): perserve when moved

This commit is contained in:
Neko Ayaka
2025-07-05 17:56:01 +08:00
parent a5e8acf428
commit 43dc9a164c
+20 -22
View File
@@ -6,8 +6,9 @@ use tauri::{
menu::{Menu, MenuItem, Submenu}, menu::{Menu, MenuItem, Submenu},
tray::TrayIconBuilder, tray::TrayIconBuilder,
}; };
use tauri_plugin_positioner::WindowExt;
use tauri_plugin_prevent_default::Flags; use tauri_plugin_prevent_default::Flags;
use tauri_plugin_positioner::{WindowExt}; use tauri_plugin_window_state::AppHandleExt;
mod app; mod app;
mod helpers; mod helpers;
@@ -33,8 +34,9 @@ pub fn run() {
.plugin(plugins::audio_transcription::init()) .plugin(plugins::audio_transcription::init())
.plugin(plugins::audio_vad::init()) .plugin(plugins::audio_vad::init())
.setup(|app| { .setup(|app| {
let mut builder = WebviewWindowBuilder::new(app, "main", WebviewUrl::default()) let mut builder = WebviewWindowBuilder::new(app, "main", WebviewUrl::default());
.title("AIRI")
builder = builder.title("AIRI")
.decorations(false) .decorations(false)
.inner_size(450.0, 600.0) .inner_size(450.0, 600.0)
.shadow(false) .shadow(false)
@@ -103,13 +105,6 @@ pub fn run() {
menu.append_items(&[&show_devtools_item])?; menu.append_items(&[&show_devtools_item])?;
} }
#[cfg(debug_assertions)]
{
let show_devtools_item =
MenuItem::with_id(app, "show-devtools", "Show Devtools", true, None::<&str>)?;
menu.append_items(&[&show_devtools_item])?;
}
let _ = TrayIconBuilder::new() let _ = TrayIconBuilder::new()
.icon(app.default_window_icon().unwrap().clone()) // TODO: use custom icon .icon(app.default_window_icon().unwrap().clone()) // TODO: use custom icon
.menu(&menu) .menu(&menu)
@@ -130,22 +125,25 @@ pub fn run() {
app::windows::settings::new_settings_window(app).unwrap(); app::windows::settings::new_settings_window(app).unwrap();
} }
"center" => { "center" => {
let window = app.get_webview_window("main"); let _ = app.get_webview_window("main")
if let Some(window) = window { .ok_or(())
let _ = window.move_window(tauri_plugin_positioner::Position::Center); .and_then(|window| window.move_window(tauri_plugin_positioner::Position::Center)
} .map_err(|_| ()))
.map(|_| app.save_window_state(StateFlags::POSITION));
} }
"bottom-left" => { "bottom-left" => {
let window = app.get_webview_window("main"); let _ = app.get_webview_window("main")
if let Some(window) = window { .ok_or(())
let _ = window.move_window(tauri_plugin_positioner::Position::BottomLeft); .and_then(|window| window.move_window(tauri_plugin_positioner::Position::BottomLeft)
} .map_err(|_| ()))
.map(|_| app.save_window_state(StateFlags::POSITION));
} }
"bottom-right" => { "bottom-right" => {
let window = app.get_webview_window("main"); let _ = app.get_webview_window("main")
if let Some(window) = window { .ok_or(())
let _ = window.move_window(tauri_plugin_positioner::Position::BottomRight); .and_then(|window| window.move_window(tauri_plugin_positioner::Position::BottomRight)
} .map_err(|_| ()))
.map(|_| app.save_window_state(StateFlags::POSITION));
} }
"hide" => { "hide" => {
let window = app.get_webview_window("main"); let window = app.get_webview_window("main");