From 003b9e48e166383cd4e5583d63ed19cc4b0b7f82 Mon Sep 17 00:00:00 2001
From: fufesou <fufesou@users.noreply.github.com>
Date: Tue, 30 Apr 2024 22:53:42 +0800
Subject: [PATCH] fix: macos, crash, key input. --server also has UI. (#7878)

Signed-off-by: fufesou <shuanglongchen@yeah.net>
---
 src/server/input_service.rs | 28 ++++++++++++++++------------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/server/input_service.rs b/src/server/input_service.rs
index 2b180a7c4..245c86244 100644
--- a/src/server/input_service.rs
+++ b/src/server/input_service.rs
@@ -1086,20 +1086,24 @@ pub async fn lock_screen() {
     }
 }
 
+#[inline]
+#[cfg(target_os = "linux")]
 pub fn handle_key(evt: &KeyEvent) {
-    #[cfg(target_os = "macos")]
-    if !is_server() {
-        // having GUI, run main GUI thread, otherwise crash
-        let evt = evt.clone();
-        QUEUE.exec_async(move || handle_key_(&evt));
-        key_sleep();
-        return;
-    }
-    #[cfg(windows)]
-    crate::portable_service::client::handle_key(evt);
-    #[cfg(not(windows))]
     handle_key_(evt);
-    #[cfg(target_os = "macos")]
+}
+
+#[inline]
+#[cfg(target_os = "windows")]
+pub fn handle_key(evt: &KeyEvent) {
+    crate::portable_service::client::handle_key(evt);
+}
+
+#[inline]
+#[cfg(target_os = "macos")]
+pub fn handle_key(evt: &KeyEvent) {
+    // having GUI, run main GUI thread, otherwise crash
+    let evt = evt.clone();
+    QUEUE.exec_async(move || handle_key_(&evt));
     key_sleep();
 }