mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 18:24:36 +00:00
fix: toggle_window_visibility with focus check (#1888)
* refactor: better logics for toggle_window_visibility
This commit is contained in:
@@ -513,23 +513,26 @@ async fn get_log_dir_path(app: tauri::AppHandle) -> Result<String, String> {
|
|||||||
#[cfg(not(target_os = "android"))]
|
#[cfg(not(target_os = "android"))]
|
||||||
fn toggle_window_visibility(app: &tauri::AppHandle) {
|
fn toggle_window_visibility(app: &tauri::AppHandle) {
|
||||||
if let Some(window) = app.get_webview_window("main") {
|
if let Some(window) = app.get_webview_window("main") {
|
||||||
let visible = if window.is_visible().unwrap_or_default() {
|
let visible = window.is_visible().unwrap_or_default();
|
||||||
if window.is_minimized().unwrap_or_default() {
|
let minimized = window.is_minimized().unwrap_or_default();
|
||||||
let _ = window.unminimize();
|
let focused = window.is_focused().unwrap_or_default();
|
||||||
false
|
|
||||||
} else {
|
let should_show = !visible || minimized || !focused;
|
||||||
true
|
if should_show {
|
||||||
}
|
if !visible {
|
||||||
} else {
|
|
||||||
let _ = window.show();
|
let _ = window.show();
|
||||||
false
|
}
|
||||||
};
|
if minimized {
|
||||||
if visible {
|
let _ = window.unminimize();
|
||||||
let _ = window.hide();
|
}
|
||||||
} else {
|
if !focused {
|
||||||
let _ = window.set_focus();
|
let _ = window.set_focus();
|
||||||
}
|
}
|
||||||
let _ = set_dock_visibility(app.clone(), !visible);
|
let _ = set_dock_visibility(app.clone(), true);
|
||||||
|
} else {
|
||||||
|
let _ = window.hide();
|
||||||
|
let _ = set_dock_visibility(app.clone(), false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user