mirror of
https://github.com/clash-verge-rev/clash-verge-rev.git
synced 2026-01-29 00:35:38 +08:00
feat: use tauri_plugin_window_state
This commit is contained in:
@@ -9,6 +9,7 @@ use crate::core::hotkey;
|
||||
use crate::utils::{resolve, resolve::resolve_scheme, server};
|
||||
#[cfg(target_os = "macos")]
|
||||
use tauri::Listener;
|
||||
use tauri_plugin_window_state::{AppHandleExt, StateFlags};
|
||||
|
||||
pub fn run() {
|
||||
// 单例检测
|
||||
@@ -32,6 +33,7 @@ pub fn run() {
|
||||
|
||||
#[allow(unused_mut)]
|
||||
let mut builder = tauri::Builder::default()
|
||||
.plugin(tauri_plugin_window_state::Builder::new().build())
|
||||
.plugin(tauri_plugin_updater::Builder::new().build())
|
||||
.plugin(tauri_plugin_clipboard_manager::init())
|
||||
.plugin(tauri_plugin_process::init())
|
||||
@@ -41,6 +43,7 @@ pub fn run() {
|
||||
.plugin(tauri_plugin_dialog::init())
|
||||
.plugin(tauri_plugin_shell::init())
|
||||
.plugin(tauri_plugin_deep_link::init())
|
||||
.plugin(tauri_plugin_window_state::Builder::default().build())
|
||||
.setup(|app| {
|
||||
#[cfg(target_os = "linux")]
|
||||
{
|
||||
@@ -144,6 +147,8 @@ pub fn run() {
|
||||
tauri::WindowEvent::CloseRequested { api, .. } => {
|
||||
println!("closing window...");
|
||||
api.prevent_close();
|
||||
let app_hanele = core::handle::Handle::global().app_handle().unwrap();
|
||||
let _ = app_hanele.save_window_state(StateFlags::default());
|
||||
let window = core::handle::Handle::global().get_window().unwrap();
|
||||
log_err!(window.hide());
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ use percent_encoding::percent_decode_str;
|
||||
use serde_yaml::Mapping;
|
||||
use std::net::TcpListener;
|
||||
use tauri::{App, Manager};
|
||||
use tauri_plugin_window_state::{StateFlags, WindowExt};
|
||||
|
||||
use url::Url;
|
||||
//#[cfg(not(target_os = "linux"))]
|
||||
@@ -143,22 +144,26 @@ pub fn create_window() {
|
||||
.transparent(true)
|
||||
.inner_size(800.0, 636.0)
|
||||
.visible(false)
|
||||
.build();
|
||||
.build().unwrap();
|
||||
|
||||
#[cfg(target_os = "macos")]
|
||||
let _ = builder
|
||||
let window = builder
|
||||
.decorations(true)
|
||||
.hidden_title(true)
|
||||
.title_bar_style(tauri::TitleBarStyle::Overlay)
|
||||
.inner_size(800.0, 642.0)
|
||||
.build();
|
||||
.build()
|
||||
.unwrap();
|
||||
|
||||
#[cfg(target_os = "linux")]
|
||||
let _ = builder
|
||||
let window = builder
|
||||
.decorations(false)
|
||||
.transparent(true)
|
||||
.inner_size(800.0, 642.0)
|
||||
.build();
|
||||
.build()
|
||||
.unwrap();
|
||||
|
||||
let _ = window.restore_state(StateFlags::all());
|
||||
}
|
||||
|
||||
pub async fn resolve_scheme(param: String) -> Result<()> {
|
||||
|
||||
Reference in New Issue
Block a user