diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
index ce1269a2995..a2d5a665ab5 100644
--- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
+++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs
@@ -59,8 +59,11 @@ public string Language
get => _language;
set
{
- _language = value;
- OnPropertyChanged();
+ if (_language != value)
+ {
+ _language = value;
+ OnPropertyChanged();
+ }
}
}
public string Theme
@@ -68,7 +71,7 @@ public string Theme
get => _theme;
set
{
- if (value != _theme)
+ if (_theme != value)
{
_theme = value;
OnPropertyChanged();
@@ -283,9 +286,12 @@ public SearchPrecisionScore QuerySearchPrecision
get => _querySearchPrecision;
set
{
- _querySearchPrecision = value;
- if (_stringMatcher != null)
- _stringMatcher.UserSettingSearchPrecision = value;
+ if (_querySearchPrecision != value)
+ {
+ _querySearchPrecision = value;
+ if (_stringMatcher != null)
+ _stringMatcher.UserSettingSearchPrecision = value;
+ }
}
}
@@ -352,13 +358,30 @@ public bool HideNotifyIcon
get => _hideNotifyIcon;
set
{
- _hideNotifyIcon = value;
- OnPropertyChanged();
+ if (_hideNotifyIcon != value)
+ {
+ _hideNotifyIcon = value;
+ OnPropertyChanged();
+ }
}
}
public bool LeaveCmdOpen { get; set; }
public bool HideWhenDeactivated { get; set; } = true;
+ private bool _showAtTopmost = true;
+ public bool ShowAtTopmost
+ {
+ get => _showAtTopmost;
+ set
+ {
+ if (_showAtTopmost != value)
+ {
+ _showAtTopmost = value;
+ OnPropertyChanged();
+ }
+ }
+ }
+
public bool SearchQueryResultsWithDelay { get; set; }
public int SearchDelayTime { get; set; } = 150;
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 22ab2016cc0..f728f10955e 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -131,6 +131,8 @@
Show History Results in Home Page
Maximum History Results Shown in Home Page
This can only be edited if plugin supports Home feature and Home Page is enabled.
+ Show Search Window at Topmost
+ Show search window above other windows
Search Plugin
diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs
index 7c324e7cc0a..fb4e4a46f73 100644
--- a/Flow.Launcher/MainWindow.xaml.cs
+++ b/Flow.Launcher/MainWindow.xaml.cs
@@ -84,6 +84,8 @@ public MainWindow()
_viewModel = Ioc.Default.GetRequiredService();
DataContext = _viewModel;
+ Topmost = _settings.ShowAtTopmost;
+
InitializeComponent();
UpdatePosition();
@@ -288,6 +290,9 @@ private async void OnLoaded(object sender, RoutedEventArgs _)
_viewModel.QueryResults();
}
break;
+ case nameof(Settings.ShowAtTopmost):
+ Topmost = _settings.ShowAtTopmost;
+ break;
}
};
diff --git a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
index c0c5613de04..fba1b3d865e 100644
--- a/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
+++ b/Flow.Launcher/SettingPages/Views/SettingsPaneGeneral.xaml
@@ -77,6 +77,17 @@
OnContent="{DynamicResource enable}" />
+
+
+
+