From 747f9582c3673a72eaf707e765f3badfc5af6674 Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 23 Mar 2025 19:27:40 +0800 Subject: [PATCH] Fix keyboard restore issue when window is deactivated --- Flow.Launcher/MainWindow.xaml.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 2ce3d1e95..de15f30e8 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -250,11 +250,21 @@ namespace Flow.Launcher private async void OnDeactivated(object sender, EventArgs e) { + // When window is deactivated, FL cannot set keyboard correctly + // This is a workaround to restore the keyboard layout + if (_settings.HideWhenDeactivated && _viewModel.StartWithEnglishMode) + { + Activate(); + QueryTextBox.Focus(); + Win32Helper.RestorePreviousKeyboardLayout(); + } + _settings.WindowLeft = Left; _settings.WindowTop = Top; ClockPanel.Opacity = 0; SearchIcon.Opacity = 0; - //This condition stops extra hide call when animator is on, + + // This condition stops extra hide call when animator is on, // which causes the toggling to occasional hide instead of show. if (_viewModel.MainWindowVisibilityStatus) { @@ -262,8 +272,9 @@ namespace Flow.Launcher // This also stops the mainwindow from flickering occasionally after Settings window is opened // and always after Settings window is closed. if (_settings.UseAnimation) - + { await Task.Delay(100); + } if (_settings.HideWhenDeactivated && !_viewModel.ExternalPreviewVisible) {