diff --git a/src/modules/launcher/Wox/MainWindow.xaml.cs b/src/modules/launcher/Wox/MainWindow.xaml.cs index b56904f8a433..89c38b2f8a92 100644 --- a/src/modules/launcher/Wox/MainWindow.xaml.cs +++ b/src/modules/launcher/Wox/MainWindow.xaml.cs @@ -35,6 +35,7 @@ public MainWindow(Settings settings, MainViewModel mainVM) DataContext = mainVM; _viewModel = mainVM; _settings = settings; + _viewModel.WindowChangedToVisible += OnWindowChangedToVisible; InitializeComponent(); } public MainWindow() @@ -239,5 +240,11 @@ private void OnTextChanged(object sender, TextChangedEventArgs e) { } + + // Steal focus when the launcher prompt is visible again. + private void OnWindowChangedToVisible(object sender, EventArgs e) + { + Focus(); + } } } \ No newline at end of file diff --git a/src/modules/launcher/Wox/ViewModel/MainViewModel.cs b/src/modules/launcher/Wox/ViewModel/MainViewModel.cs index 677a9479d431..474926763bcc 100644 --- a/src/modules/launcher/Wox/ViewModel/MainViewModel.cs +++ b/src/modules/launcher/Wox/ViewModel/MainViewModel.cs @@ -47,6 +47,8 @@ public class MainViewModel : BaseModel, ISavable #endregion + public event EventHandler WindowChangedToVisible; + #region Constructor public MainViewModel(Settings settings) @@ -619,6 +621,7 @@ private void ToggleWox() if (MainWindowVisibility != Visibility.Visible) { MainWindowVisibility = Visibility.Visible; + WindowChangedToVisible?.Invoke(this, new EventArgs()); } else {