From 2b328e552a0f8b569188588d4fe9a075349a7c1e Mon Sep 17 00:00:00 2001 From: Hongtao Zhang Date: Mon, 19 Jan 2026 00:13:42 -0800 Subject: [PATCH] Fix OpenSettings command: ensure Main Window hides before showing Settings - Call Hide() before scheduling SettingsWindow.Show() to ensure proper visibility state transition - Use Dispatcher.UIThread.Post for showing the new window to avoid focus conflicts --- .../ViewModel/MainViewModel.cs | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs b/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs index 401b00cca..3be72176b 100644 --- a/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs +++ b/Flow.Launcher.Avalonia/ViewModel/MainViewModel.cs @@ -214,16 +214,6 @@ public partial class MainViewModel : ObservableObject public void Show() { MainWindowVisibility = true; - ShowRequested?.Invoke(); - Log.Info(ClassName, "Show requested"); - } - - /// - /// Hide the main window. - /// - public void Hide() - { - MainWindowVisibility = false; QueryText = ""; ActiveView = ActiveView.Results; ContextMenu.Clear(); @@ -382,8 +372,11 @@ public partial class MainViewModel : ObservableObject public void OpenSettings() { Hide(); - var settingsWindow = new SettingsWindow(); - settingsWindow.Show(); + global::Avalonia.Threading.Dispatcher.UIThread.Post(() => + { + var settingsWindow = new SettingsWindow(); + settingsWindow.Show(); + }); } [RelayCommand]