From 5225c841ae5b9c86a0826aff006247f036e170c6 Mon Sep 17 00:00:00 2001
From: GyDi <segydi@foxmail.com>
Date: Mon, 30 May 2022 00:57:31 +0800
Subject: [PATCH] chore: adjust code

---
 src-tauri/src/core/mod.rs   | 19 ++++++++++++++-----
 src-tauri/src/core/multi.rs | 26 --------------------------
 src-tauri/src/core/verge.rs |  4 ----
 src/services/enhance.ts     |  1 +
 4 files changed, 15 insertions(+), 35 deletions(-)
 delete mode 100644 src-tauri/src/core/multi.rs

diff --git a/src-tauri/src/core/mod.rs b/src-tauri/src/core/mod.rs
index ec4e396..f9abfe9 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 d779830..0000000
--- 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 0db1621..a03bde4 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 803ee2e..1fbee88 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;
-- 
GitLab