From 115d3a58f477fca819418fefd049bfc0830ca635 Mon Sep 17 00:00:00 2001 From: Vic <10308169+VictoriousRaptor@users.noreply.github.com> Date: Mon, 20 Mar 2023 17:50:53 +0800 Subject: [PATCH] Add custom monitor number selection combobox --- .../UserSettings/Settings.cs | 2 +- Flow.Launcher/MainWindow.xaml.cs | 5 ++++- Flow.Launcher/SettingWindow.xaml | 6 ++---- Flow.Launcher/ViewModel/SettingWindowViewModel.cs | 14 ++++++++++++++ 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index 824c75cef..7f62d82c8 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -245,7 +245,7 @@ namespace Flow.Launcher.Infrastructure.UserSettings [JsonConverter(typeof(JsonStringEnumConverter))] public SearchWindowAligns SearchWindowAlign { get; set; } = SearchWindowAligns.Center; - public string CustomScreenDeviceName { get; set; } = string.Empty; + public int CustomScreenNumber { get; set; } = 1; public bool IgnoreHotkeysOnFullscreen { get; set; } diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 1469abe0b..4477da5f4 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -550,7 +550,10 @@ namespace Flow.Launcher screen = Screen.FromHandle(foregroundWindowHandle); break; case SearchWindowScreens.Custom: - screen = Screen.AllScreens.FirstOrDefault(s => s.DeviceName == _settings.CustomScreenDeviceName); + if (_settings.CustomScreenNumber <= Screen.AllScreens.Length) + screen = Screen.AllScreens[_settings.CustomScreenNumber - 1]; + else + screen = Screen.AllScreens[0]; break; default: screen = Screen.AllScreens[0]; diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 082f68ce6..67f53c940 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -719,11 +719,9 @@ MinWidth="160" Margin="0,0,18,0" VerticalAlignment="Center" - DisplayMemberPath="Display" FontSize="14" - ItemsSource="{Binding SearchWindowAligns}" - SelectedValue="{Binding Settings.SearchWindowAlign}" - SelectedValuePath="Value"> + ItemsSource="{Binding ScreenNumbers}" + SelectedValue="{Binding Settings.CustomScreenNumber}">