diff --git a/src-tauri/src/core/mod.rs b/src-tauri/src/core/mod.rs index ec4e396a0b9dd6023878a87ff603e6658b4090ed..f9abfe910f8f4f4de3bd90727a9738833b4f7763 100644 --- a/src-tauri/src/core/mod.rs +++ b/src-tauri/src/core/mod.rs @@ -28,6 +28,10 @@ pub use self::profiles::*; pub use self::service::*; pub use self::verge::*; +/// close the window for slient start +/// after enhance mode +static mut WINDOW_CLOSABLE: bool = true; + #[derive(Clone)] pub struct Core { pub clash: Arc<Mutex<Clash>>, @@ -48,10 +52,9 @@ pub struct Core { impl Core { pub fn new() -> Core { let clash = Clash::new(); - let mut verge = Verge::new(); + let verge = Verge::new(); let profiles = Profiles::new(); let service = Service::new(); - verge.launch_flag = Some(true); Core { clash: Arc::new(Mutex::new(clash)), @@ -383,11 +386,17 @@ impl Core { result.error.map(|err| log::error!("{err}")); }); - let mut verge = self.verge.lock(); + let verge = self.verge.lock(); let silent_start = verge.enable_silent_start.clone(); - if silent_start.unwrap_or(false) && verge.launch_flag.unwrap_or(false) { + + let closable = unsafe { WINDOW_CLOSABLE }; + + if silent_start.unwrap_or(false) && closable { + unsafe { + WINDOW_CLOSABLE = false; + } + window.emit("script-handler-close", payload).unwrap(); - verge.launch_flag = Some(false); } else { window.emit("script-handler", payload).unwrap(); } diff --git a/src-tauri/src/core/multi.rs b/src-tauri/src/core/multi.rs deleted file mode 100644 index d77983062af0c92924e40db791b2c42fa3d44ff3..0000000000000000000000000000000000000000 --- a/src-tauri/src/core/multi.rs +++ /dev/null @@ -1,26 +0,0 @@ -use anyhow::{Context, Result}; -use std::env::current_exe; - -pub struct CoreItem { - pub name: String, - pub path: String, -} - -pub struct Multi {} - -impl Multi { - pub fn list() -> Result<Vec<CoreItem>> { - let paths = current_exe() - .unwrap() - .parent() - .unwrap() - .read_dir() - .context("failed to current dir")?; - - for path in paths { - dbg!(path.unwrap().path().metadata().unwrap().permissions().); - } - - Ok(vec![]) - } -} diff --git a/src-tauri/src/core/verge.rs b/src-tauri/src/core/verge.rs index 0db1621d4ebda9fdfb0b439579d3110518c8cdb2..a03bde424376295fe671262678a19b850b3e6346 100644 --- a/src-tauri/src/core/verge.rs +++ b/src-tauri/src/core/verge.rs @@ -37,10 +37,6 @@ pub struct Verge { /// enable proxy guard pub enable_proxy_guard: Option<bool>, - /// launch flag - #[serde(skip_serializing)] - pub launch_flag: Option<bool>, - /// set system proxy bypass pub system_proxy_bypass: Option<String>, diff --git a/src/services/enhance.ts b/src/services/enhance.ts index 803ee2e046fa3f56ccd0479039b2449aad878d21..1fbee88b0bf10ab0be45d1544db92182c7e70c28 100644 --- a/src/services/enhance.ts +++ b/src/services/enhance.ts @@ -136,6 +136,7 @@ class Enhance { emit(payload.callback, JSON.stringify(result)).catch(console.error); } + // setup the handler setup() { if (this.isSetup) return;