mirror of
https://github.com/mountain-loop/yaak.git
synced 2026-04-23 00:58:32 +02:00
Add tauri window save state plugin
This commit is contained in:
1653
src-tauri/Cargo.lock
generated
1653
src-tauri/Cargo.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -18,18 +18,19 @@ objc = "0.2.7"
|
|||||||
cocoa = "0.25.0"
|
cocoa = "0.25.0"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
serde_json = { version = "1.0", features = ["raw_value"] }
|
|
||||||
serde = { version = "1.0", features = ["derive"] }
|
|
||||||
tauri = { version = "1.3", features = ["config-toml", "devtools", "fs-read-file", "os-all", "protocol-asset", "shell-open", "system-tray", "updater", "window-start-dragging"] }
|
|
||||||
http = "0.2.8"
|
|
||||||
reqwest = { version = "0.11.14", features = ["json"] }
|
|
||||||
tokio = { version = "1.25.0", features = ["sync"] }
|
|
||||||
futures = "0.3.26"
|
|
||||||
sqlx = { version = "0.6.2", features = ["sqlite", "runtime-tokio-rustls", "json", "chrono", "time", "offline"] }
|
|
||||||
uuid = "1.3.0"
|
|
||||||
rand = "0.8.5"
|
|
||||||
chrono = { version = "0.4.23", features = ["serde"] }
|
|
||||||
base64 = "0.21.0"
|
base64 = "0.21.0"
|
||||||
|
chrono = { version = "0.4.23", features = ["serde"] }
|
||||||
|
futures = "0.3.26"
|
||||||
|
http = "0.2.8"
|
||||||
|
rand = "0.8.5"
|
||||||
|
reqwest = { version = "0.11.14", features = ["json"] }
|
||||||
|
serde = { version = "1.0", features = ["derive"] }
|
||||||
|
serde_json = { version = "1.0", features = ["raw_value"] }
|
||||||
|
sqlx = { version = "0.6.2", features = ["sqlite", "runtime-tokio-rustls", "json", "chrono", "time", "offline"] }
|
||||||
|
tauri = { version = "1.3", features = ["config-toml", "devtools", "fs-read-file", "os-all", "protocol-asset", "shell-open", "system-tray", "updater", "window-start-dragging"] }
|
||||||
|
tauri-plugin-window-state = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v1" }
|
||||||
|
tokio = { version = "1.25.0", features = ["sync"] }
|
||||||
|
uuid = "1.3.0"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
# by default Tauri runs in production mode
|
# by default Tauri runs in production mode
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate objc;
|
extern crate objc;
|
||||||
|
|
||||||
use crate::models::generate_id;
|
|
||||||
use base64::Engine;
|
use base64::Engine;
|
||||||
use http::header::{HeaderName, ACCEPT, USER_AGENT};
|
use http::header::{HeaderName, ACCEPT, USER_AGENT};
|
||||||
use http::{HeaderMap, HeaderValue, Method};
|
use http::{HeaderMap, HeaderValue, Method};
|
||||||
@@ -26,8 +25,9 @@ use std::io::Write;
|
|||||||
use tauri::TitleBarStyle;
|
use tauri::TitleBarStyle;
|
||||||
use tauri::{AppHandle, Menu, MenuItem, RunEvent, State, Submenu, Window, WindowUrl, Wry};
|
use tauri::{AppHandle, Menu, MenuItem, RunEvent, State, Submenu, Window, WindowUrl, Wry};
|
||||||
use tauri::{CustomMenuItem, Manager, WindowEvent};
|
use tauri::{CustomMenuItem, Manager, WindowEvent};
|
||||||
|
use tauri_plugin_window_state::{StateFlags, WindowExt};
|
||||||
use tokio::sync::Mutex;
|
use tokio::sync::Mutex;
|
||||||
use window_ext::WindowExt;
|
use window_ext::TrafficLightWindowExt;
|
||||||
|
|
||||||
mod models;
|
mod models;
|
||||||
mod render;
|
mod render;
|
||||||
@@ -629,6 +629,7 @@ async fn delete_workspace(
|
|||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
tauri::Builder::default()
|
tauri::Builder::default()
|
||||||
|
.plugin(tauri_plugin_window_state::Builder::default().build())
|
||||||
.setup(|app| {
|
.setup(|app| {
|
||||||
let dir = match is_dev() {
|
let dir = match is_dev() {
|
||||||
true => current_dir().unwrap(),
|
true => current_dir().unwrap(),
|
||||||
@@ -686,7 +687,9 @@ fn main() {
|
|||||||
.expect("error while running tauri application")
|
.expect("error while running tauri application")
|
||||||
.run(|app_handle, event| match event {
|
.run(|app_handle, event| match event {
|
||||||
RunEvent::Ready => {
|
RunEvent::Ready => {
|
||||||
create_window(app_handle, None);
|
let w = create_window(app_handle, None);
|
||||||
|
w.restore_state(StateFlags::all())
|
||||||
|
.expect("Failed to restore window state");
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExitRequested { api, .. } => {
|
// ExitRequested { api, .. } => {
|
||||||
@@ -757,7 +760,7 @@ fn create_window(handle: &AppHandle<Wry>, url: Option<&str>) -> Window<Wry> {
|
|||||||
let submenu = Submenu::new("Test Menu", test_menu);
|
let submenu = Submenu::new("Test Menu", test_menu);
|
||||||
|
|
||||||
let window_num = handle.windows().len();
|
let window_num = handle.windows().len();
|
||||||
let window_id = format!("wnd_{}_{}", window_num, generate_id(None));
|
let window_id = format!("wnd_{}", window_num);
|
||||||
let menu = default_menu.add_submenu(submenu);
|
let menu = default_menu.add_submenu(submenu);
|
||||||
let mut win_builder = tauri::WindowBuilder::new(
|
let mut win_builder = tauri::WindowBuilder::new(
|
||||||
handle,
|
handle,
|
||||||
|
|||||||
@@ -3,11 +3,11 @@ use tauri::{Runtime, Window};
|
|||||||
const TRAFFIC_LIGHT_OFFSET_X: f64 = 13.0;
|
const TRAFFIC_LIGHT_OFFSET_X: f64 = 13.0;
|
||||||
const TRAFFIC_LIGHT_OFFSET_Y: f64 = 18.0;
|
const TRAFFIC_LIGHT_OFFSET_Y: f64 = 18.0;
|
||||||
|
|
||||||
pub trait WindowExt {
|
pub trait TrafficLightWindowExt {
|
||||||
fn position_traffic_lights(&self);
|
fn position_traffic_lights(&self);
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<R: Runtime> WindowExt for Window<R> {
|
impl<R: Runtime> TrafficLightWindowExt for Window<R> {
|
||||||
#[cfg(not(target_os = "macos"))]
|
#[cfg(not(target_os = "macos"))]
|
||||||
fn position_traffic_lights(&self) {
|
fn position_traffic_lights(&self) {
|
||||||
// No-op
|
// No-op
|
||||||
|
|||||||
Reference in New Issue
Block a user