From f4ce4bf6f27ad392de0aad4817f40f978a77d663 Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 7 Sep 2022 10:39:06 +0900 Subject: [PATCH 01/15] - Add Launcher Positioning combobox in SettingWindow - Add Mouse Center Top position - remove RememberLastLaunch bool (moved to Launcher Positioning) --- .../UserSettings/Settings.cs | 8 +++++- Flow.Launcher/Languages/en.xaml | 4 +++ Flow.Launcher/MainWindow.xaml.cs | 20 ++++++++++---- Flow.Launcher/SettingWindow.xaml | 21 ++++++++++++--- Flow.Launcher/SettingWindow.xaml.cs | 6 +++++ .../ViewModel/SettingWindowViewModel.cs | 27 +++++++++++++++++++ 6 files changed, 77 insertions(+), 9 deletions(-) diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index 211bc179876..b9735ddc2ec 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -199,7 +199,7 @@ public bool HideNotifyIcon } public bool LeaveCmdOpen { get; set; } public bool HideWhenDeactive { get; set; } = true; - public bool RememberLastLaunchLocation { get; set; } + public string LauncherPosition { get; set; } = "RememberLastLaunchLocation"; public bool IgnoreHotkeysOnFullscreen { get; set; } public HttpProxy Proxy { get; set; } = new HttpProxy(); @@ -225,4 +225,10 @@ public enum ColorSchemes Light, Dark } + public enum LauncherPositions + { + RememberLastLaunchLocation, + MouseScreenCenter, + MouseScreenCenterTop + } } diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index 2019c1b6629..ff6af2f3d9f 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -33,7 +33,11 @@ Error setting launch on startup Hide Flow Launcher when focus is lost Do not show new version notifications + Launcher Position Remember last launch location + Remember Last Launch Location + Mouse Screen Center + Mouse Screen Center Top Language Last Query Style Show/Hide previous results when Flow Launcher is reactivated. diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 332e0f5024a..2b081451eaa 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -182,16 +182,21 @@ private void OnLoaded(object sender, RoutedEventArgs _) private void InitializePosition() { - if (_settings.RememberLastLaunchLocation) + if (_settings.LauncherPosition == "RememberLastLaunchLocation") { Top = _settings.WindowTop; Left = _settings.WindowLeft; } - else + else if(_settings.LauncherPosition == "MouseScreenCenter") { Left = WindowLeft(); Top = WindowTop(); } + else if (_settings.LauncherPosition == "MouseScreenCenterTop") + { + Left = WindowLeft(); + Top = 0; + } } private void UpdateNotifyIconText() @@ -418,23 +423,28 @@ private void UpdatePosition() if (_animating) return; - if (_settings.RememberLastLaunchLocation) + if (_settings.LauncherPosition == "RememberLastLaunchLocation") { Left = _settings.WindowLeft; Top = _settings.WindowTop; } - else + else if (_settings.LauncherPosition == "MouseScreenCenter") { Left = WindowLeft(); Top = WindowTop(); } + else if (_settings.LauncherPosition == "MouseScreenCenterTop") + { + Left = WindowLeft(); + Top = 0; + } } private void OnLocationChanged(object sender, EventArgs e) { if (_animating) return; - if (_settings.RememberLastLaunchLocation) + if (_settings.LauncherPosition == "RememberLastLaunchLocation") { _settings.WindowLeft = Left; _settings.WindowTop = Top; diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 0a63b3a6cfb..11b798dae3c 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -685,12 +685,27 @@ - + - + - + + + +  + diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index 51017b96bd7..42e7f7c340c 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -435,6 +435,12 @@ private void OnPluginSettingKeydown(object sender, KeyEventArgs e) pluginFilterTxb.Focus(); } + private void LauncherPositionSelectedIndexChanged(object sender, SelectionChangedEventArgs e) + { + + } + + private void PluginStore_OnKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.F && (Keyboard.Modifiers & ModifierKeys.Control) != 0) diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs index 9e7ead7d07c..03c31acd2e1 100644 --- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs +++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs @@ -382,6 +382,33 @@ public List ColorSchemes } } + + + public class LauncherPosition + { + public string Display { get; set; } + public LauncherPositions Value { get; set; } + } + + public List LauncherPositions + { + get + { + List modes = new List(); + var enums = (LauncherPositions[])Enum.GetValues(typeof(LauncherPositions)); + foreach (var e in enums) + { + var key = $"LauncherPosition{e}"; + var display = _translater.GetTranslation(key); + var m = new LauncherPosition { Display = display, Value = e, }; + modes.Add(m); + } + return modes; + } + } + + + public double WindowWidthSize { get => Settings.WindowSize; From a69bbacc53804872109d5bd9898724bfad1f943e Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 7 Sep 2022 10:40:50 +0900 Subject: [PATCH 02/15] - Adjust Top Positioning --- Flow.Launcher/MainWindow.xaml.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 2b081451eaa..6463d68c3d7 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -195,7 +195,7 @@ private void InitializePosition() else if (_settings.LauncherPosition == "MouseScreenCenterTop") { Left = WindowLeft(); - Top = 0; + Top = 10; } } @@ -436,7 +436,7 @@ private void UpdatePosition() else if (_settings.LauncherPosition == "MouseScreenCenterTop") { Left = WindowLeft(); - Top = 0; + Top = 10; } } From 4fae112c391a8992c571fcf0ae301519d629c772 Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 7 Sep 2022 11:08:11 +0900 Subject: [PATCH 03/15] - Add LeftTop / RightTop Option - Remove comment --- .../UserSettings/Settings.cs | 4 ++- Flow.Launcher/Languages/en.xaml | 6 ++-- Flow.Launcher/MainWindow.xaml.cs | 29 +++++++++++++++++++ Flow.Launcher/SettingWindow.xaml | 3 +- 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index b9735ddc2ec..bf2ed565f3b 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -229,6 +229,8 @@ public enum LauncherPositions { RememberLastLaunchLocation, MouseScreenCenter, - MouseScreenCenterTop + MouseScreenCenterTop, + MouseScreenLeftTop, + MouseScreenRightTop } } diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index ff6af2f3d9f..1c4b0e90d0b 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -36,8 +36,10 @@ Launcher Position Remember last launch location Remember Last Launch Location - Mouse Screen Center - Mouse Screen Center Top + Mouse Focused Screen Center + Mouse Focused Screen Center Top + Mouse Focused Screen Left Top + Mouse Focused Screen Right Top Language Last Query Style Show/Hide previous results when Flow Launcher is reactivated. diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 6463d68c3d7..0917e99b8e9 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -197,6 +197,16 @@ private void InitializePosition() Left = WindowLeft(); Top = 10; } + else if (_settings.LauncherPosition == "MouseScreenLeftTop") + { + Left = 10; + Top = 10; + } + else if (_settings.LauncherPosition == "MouseScreenRightTop") + { + Left = WindowRight(); + Top = 10; + } } private void UpdateNotifyIconText() @@ -438,6 +448,16 @@ private void UpdatePosition() Left = WindowLeft(); Top = 10; } + else if (_settings.LauncherPosition == "MouseScreenLeftTop") + { + Left = 10; + Top = 10; + } + else if (_settings.LauncherPosition == "MouseScreenRightTop") + { + Left = WindowRight(); + Top = 10; + } } private void OnLocationChanged(object sender, EventArgs e) @@ -482,6 +502,15 @@ public double WindowTop() return top; } + public double WindowRight() + { + var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position); + var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0); + var dip2 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0); + var left = (dip2.X - ActualWidth) - 10; + return left; + } + /// /// Register up and down key /// todo: any way to put this in xaml ? diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 11b798dae3c..6c40e736e54 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -693,7 +693,7 @@ - From 7653d0ea96fcd5cfd91fc5ca0f46e9f19b150d0d Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 7 Sep 2022 11:10:57 +0900 Subject: [PATCH 04/15] - Change String "Remember Last Launch Location" to "Remember Last Location" --- Flow.Launcher/Languages/en.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index 1c4b0e90d0b..afd118191f6 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -35,7 +35,7 @@ Do not show new version notifications Launcher Position Remember last launch location - Remember Last Launch Location + Remember Last Location Mouse Focused Screen Center Mouse Focused Screen Center Top Mouse Focused Screen Left Top From ad50c38f06cf8bccb5e3aec7713de31545c2bc25 Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 7 Sep 2022 11:31:00 +0900 Subject: [PATCH 05/15] - Add Positioning Reset in Tray --- Flow.Launcher/Languages/en.xaml | 1 + Flow.Launcher/MainWindow.xaml.cs | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index afd118191f6..5ad21061e89 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -23,6 +23,7 @@ Text Game Mode Suspend the use of Hotkeys. + Position Reset Flow Launcher Settings diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 0917e99b8e9..d7f58e2ca2a 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -214,8 +214,9 @@ private void UpdateNotifyIconText() var menu = contextMenu; ((MenuItem)menu.Items[1]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayOpen") + " (" + _settings.Hotkey + ")"; ((MenuItem)menu.Items[2]).Header = InternationalizationManager.Instance.GetTranslation("GameMode"); - ((MenuItem)menu.Items[3]).Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings"); - ((MenuItem)menu.Items[4]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit"); + ((MenuItem)menu.Items[3]).Header = InternationalizationManager.Instance.GetTranslation("PositionReset"); + ((MenuItem)menu.Items[4]).Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings"); + ((MenuItem)menu.Items[5]).Header = InternationalizationManager.Instance.GetTranslation("iconTrayExit"); } private void InitializeNotifyIcon() @@ -241,6 +242,10 @@ private void InitializeNotifyIcon() { Header = InternationalizationManager.Instance.GetTranslation("GameMode") }; + var positionreset = new MenuItem + { + Header = InternationalizationManager.Instance.GetTranslation("PositionReset") + }; var settings = new MenuItem { Header = InternationalizationManager.Instance.GetTranslation("iconTraySettings") @@ -252,12 +257,14 @@ private void InitializeNotifyIcon() open.Click += (o, e) => _viewModel.ToggleFlowLauncher(); gamemode.Click += (o, e) => ToggleGameMode(); + positionreset.Click += (o, e) => PositionReset(); settings.Click += (o, e) => App.API.OpenSettingDialog(); exit.Click += (o, e) => Close(); contextMenu.Items.Add(header); contextMenu.Items.Add(open); gamemode.ToolTip = InternationalizationManager.Instance.GetTranslation("GameModeToolTip"); contextMenu.Items.Add(gamemode); + contextMenu.Items.Add(positionreset); contextMenu.Items.Add(settings); contextMenu.Items.Add(exit); @@ -304,6 +311,12 @@ private void ToggleGameMode() _viewModel.GameModeStatus = true; } } + private void PositionReset() + { + Left = WindowLeft(); + Top = WindowTop(); + + } private void InitProgressbarAnimation() { var da = new DoubleAnimation(ProgressBar.X2, ActualWidth + 150, From 3c8acaa6591c1669dd8621dd38f6f757eb8093fd Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 14 Sep 2022 18:59:16 +0900 Subject: [PATCH 06/15] Add "dash" in item for easy to read --- Flow.Launcher/Languages/en.xaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index 5ad21061e89..3e5ea6f4d43 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -37,10 +37,10 @@ Launcher Position Remember last launch location Remember Last Location - Mouse Focused Screen Center - Mouse Focused Screen Center Top - Mouse Focused Screen Left Top - Mouse Focused Screen Right Top + Mouse Focused Screen - Center + Mouse Focused Screen - Center Top + Mouse Focused Screen - Left Top + Mouse Focused Screen - Right Top Language Last Query Style Show/Hide previous results when Flow Launcher is reactivated. From d1bfd1cc0f1564cb2f08e562e69f4a3af4d4a551 Mon Sep 17 00:00:00 2001 From: DB p Date: Thu, 13 Oct 2022 09:28:23 +0900 Subject: [PATCH 07/15] - Change the if code to switch. - Change String to enum. - Remove duplicated code. --- .../UserSettings/Settings.cs | 2 +- Flow.Launcher/MainWindow.xaml.cs | 73 ++++++------------- 2 files changed, 24 insertions(+), 51 deletions(-) diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index bf2ed565f3b..89179c8540e 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -199,7 +199,7 @@ public bool HideNotifyIcon } public bool LeaveCmdOpen { get; set; } public bool HideWhenDeactive { get; set; } = true; - public string LauncherPosition { get; set; } = "RememberLastLaunchLocation"; + public LauncherPositions LauncherPosition { get; set; } = LauncherPositions.RememberLastLaunchLocation; public bool IgnoreHotkeysOnFullscreen { get; set; } public HttpProxy Proxy { get; set; } = new HttpProxy(); diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index d7f58e2ca2a..b956a7b5e45 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -182,30 +182,28 @@ private void OnLoaded(object sender, RoutedEventArgs _) private void InitializePosition() { - if (_settings.LauncherPosition == "RememberLastLaunchLocation") + switch (_settings.LauncherPosition) { - Top = _settings.WindowTop; - Left = _settings.WindowLeft; - } - else if(_settings.LauncherPosition == "MouseScreenCenter") - { - Left = WindowLeft(); - Top = WindowTop(); - } - else if (_settings.LauncherPosition == "MouseScreenCenterTop") - { - Left = WindowLeft(); - Top = 10; - } - else if (_settings.LauncherPosition == "MouseScreenLeftTop") - { - Left = 10; - Top = 10; - } - else if (_settings.LauncherPosition == "MouseScreenRightTop") - { - Left = WindowRight(); - Top = 10; + case LauncherPositions.RememberLastLaunchLocation: + Top = _settings.WindowTop; + Left = _settings.WindowLeft; + break; + case LauncherPositions.MouseScreenCenter: + Left = WindowLeft(); + Top = WindowTop(); + break; + case LauncherPositions.MouseScreenCenterTop: + Left = WindowLeft(); + Top = 10; + break; + case LauncherPositions.MouseScreenLeftTop: + Left = 10; + Top = 10; + break; + case LauncherPositions.MouseScreenRightTop: + Left = WindowRight(); + Top = 10; + break; } } @@ -445,39 +443,14 @@ private void UpdatePosition() { if (_animating) return; - - if (_settings.LauncherPosition == "RememberLastLaunchLocation") - { - Left = _settings.WindowLeft; - Top = _settings.WindowTop; - } - else if (_settings.LauncherPosition == "MouseScreenCenter") - { - Left = WindowLeft(); - Top = WindowTop(); - } - else if (_settings.LauncherPosition == "MouseScreenCenterTop") - { - Left = WindowLeft(); - Top = 10; - } - else if (_settings.LauncherPosition == "MouseScreenLeftTop") - { - Left = 10; - Top = 10; - } - else if (_settings.LauncherPosition == "MouseScreenRightTop") - { - Left = WindowRight(); - Top = 10; - } + InitializePosition(); } private void OnLocationChanged(object sender, EventArgs e) { if (_animating) return; - if (_settings.LauncherPosition == "RememberLastLaunchLocation") + if (_settings.LauncherPosition == LauncherPositions.RememberLastLaunchLocation) { _settings.WindowLeft = Left; _settings.WindowTop = Top; From 21c944e83396781a2477e664abc0ff72dbacc6e1 Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 19 Oct 2022 12:21:17 +0900 Subject: [PATCH 08/15] Fix Conflict --- Flow.Launcher/MainWindow.xaml | 22 ++++++++++------------ Flow.Launcher/MainWindow.xaml.cs | 24 +++++++++++------------- Flow.Launcher/ViewModel/MainViewModel.cs | 23 ++--------------------- 3 files changed, 23 insertions(+), 46 deletions(-) diff --git a/Flow.Launcher/MainWindow.xaml b/Flow.Launcher/MainWindow.xaml index cc605edc90b..9f7d16ab184 100644 --- a/Flow.Launcher/MainWindow.xaml +++ b/Flow.Launcher/MainWindow.xaml @@ -32,9 +32,7 @@ Visibility="{Binding MainWindowVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" WindowStartupLocation="Manual" WindowStyle="None" - mc:Ignorable="d" - Left="{Binding Left, Mode=TwoWay}" - Top="{Binding Top, Mode=TwoWay}"> + mc:Ignorable="d"> @@ -88,20 +86,20 @@ + Command="{Binding IncreaseWidthCommand}" + Modifiers="Control" /> + Command="{Binding DecreaseWidthCommand}" + Modifiers="Control" /> + Command="{Binding IncreaseMaxResultCommand}" + Modifiers="Control" /> + Command="{Binding DecreaseMaxResultCommand}" + Modifiers="Control" /> diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 4f0c723e98c..2e601c23ca9 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -108,7 +108,6 @@ private void OnLoaded(object sender, RoutedEventArgs _) animationSound.Position = TimeSpan.Zero; animationSound.Play(); } - UpdatePosition(); Activate(); QueryTextBox.Focus(); @@ -161,6 +160,7 @@ private void OnLoaded(object sender, RoutedEventArgs _) _viewModel.QueryTextCursorMovedToEnd = false; } break; + } }; _settings.PropertyChanged += (o, e) => @@ -176,6 +176,12 @@ private void OnLoaded(object sender, RoutedEventArgs _) case nameof(Settings.Hotkey): UpdateNotifyIconText(); break; + case nameof(Settings.WindowLeft): + Left = _settings.WindowLeft; + break; + case nameof(Settings.WindowTop): + Top = _settings.WindowTop; + break; } }; } @@ -311,9 +317,10 @@ private void ToggleGameMode() } private void PositionReset() { - Left = WindowLeft(); - Top = WindowTop(); - + _settings.WindowLeft = WindowLeft(); + _settings.WindowTop = WindowTop(); + // Left = _settings.WindowLeft; + //Top = _settings.WindowTop; } private void InitProgressbarAnimation() { @@ -469,15 +476,6 @@ public void HideStartup() _viewModel.Show(); } } - - private void InitializePosition() - { - if (!_settings.RememberLastLaunchLocation) - { - Left = WindowLeft(); - Top = WindowTop(); - } - } public double WindowLeft() { diff --git a/Flow.Launcher/ViewModel/MainViewModel.cs b/Flow.Launcher/ViewModel/MainViewModel.cs index 2f07f43dba9..57c791f5e01 100644 --- a/Flow.Launcher/ViewModel/MainViewModel.cs +++ b/Flow.Launcher/ViewModel/MainViewModel.cs @@ -341,25 +341,6 @@ public string QueryText } - public double Top - { - get => _settings.WindowTop; - set - { - _settings.WindowTop = value; - OnPropertyChanged(); - } - } - public double Left - { - get => _settings.WindowLeft; - set - { - _settings.WindowLeft = value; - OnPropertyChanged(); - } - } - [RelayCommand] private void IncreaseWidth() { @@ -370,7 +351,7 @@ private void IncreaseWidth() else { _settings.WindowSize += 100; - Left -= 50; + _settings.WindowLeft -= 50; } OnPropertyChanged(); } @@ -384,7 +365,7 @@ private void DecreaseWidth() } else { - Left += 50; + _settings.WindowLeft += 50; _settings.WindowSize -= 100; } OnPropertyChanged(); From 985003cff2aa0e8b206496f889fbd9041cc31f55 Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 19 Oct 2022 19:08:39 +0900 Subject: [PATCH 09/15] Rename Positioning function --- Flow.Launcher/MainWindow.xaml.cs | 35 +++++++++++++++----------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 2e601c23ca9..01374d849af 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -46,6 +46,7 @@ public MainWindow(Settings settings, MainViewModel mainVM) _viewModel = mainVM; _settings = settings; InitializeComponent(); + InitializePosition(); animationSound.Open(new Uri(AppDomain.CurrentDomain.BaseDirectory + "Resources\\open.wav")); } @@ -176,12 +177,6 @@ private void OnLoaded(object sender, RoutedEventArgs _) case nameof(Settings.Hotkey): UpdateNotifyIconText(); break; - case nameof(Settings.WindowLeft): - Left = _settings.WindowLeft; - break; - case nameof(Settings.WindowTop): - Top = _settings.WindowTop; - break; } }; } @@ -195,11 +190,11 @@ private void InitializePosition() Left = _settings.WindowLeft; break; case LauncherPositions.MouseScreenCenter: - Left = WindowLeft(); - Top = WindowTop(); + Left = HorizonCenter(); + Top = VerticalCenter(); break; case LauncherPositions.MouseScreenCenterTop: - Left = WindowLeft(); + Left = HorizonCenter(); Top = 10; break; case LauncherPositions.MouseScreenLeftTop: @@ -207,7 +202,7 @@ private void InitializePosition() Top = 10; break; case LauncherPositions.MouseScreenRightTop: - Left = WindowRight(); + Left = HorizonRight(); Top = 10; break; } @@ -315,17 +310,17 @@ private void ToggleGameMode() _viewModel.GameModeStatus = true; } } - private void PositionReset() + private async void PositionReset() { - _settings.WindowLeft = WindowLeft(); - _settings.WindowTop = WindowTop(); - // Left = _settings.WindowLeft; - //Top = _settings.WindowTop; + _viewModel.Show(); + await Task.Delay(300); // If don't give a time, Positioning will be weired. + Left = HorizonCenter(); + Top = VerticalCenter(); } private void InitProgressbarAnimation() { var da = new DoubleAnimation(ProgressBar.X2, ActualWidth + 150, - new Duration(new TimeSpan(0, 0, 0, 0, 1600))); + new Duration(new TimeSpan(0, 0, 0, 0, 1600))); var da1 = new DoubleAnimation(ProgressBar.X1, ActualWidth + 50, new Duration(new TimeSpan(0, 0, 0, 0, 1600))); Storyboard.SetTargetProperty(da, new PropertyPath("(Line.X2)")); Storyboard.SetTargetProperty(da1, new PropertyPath("(Line.X1)")); @@ -429,6 +424,8 @@ private async void OnContextMenusForSettingsClick(object sender, RoutedEventArgs private async void OnDeactivated(object sender, EventArgs e) { + _settings.WindowLeft = Left; + _settings.WindowTop = Top; //This condition stops extra hide call when animator is on, // which causes the toggling to occasional hide instead of show. if (_viewModel.MainWindowVisibilityStatus) @@ -477,7 +474,7 @@ public void HideStartup() } } - public double WindowLeft() + public double HorizonCenter() { var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position); var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0); @@ -486,7 +483,7 @@ public double WindowLeft() return left; } - public double WindowTop() + public double VerticalCenter() { var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position); var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y); @@ -495,7 +492,7 @@ public double WindowTop() return top; } - public double WindowRight() + public double HorizonRight() { var screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position); var dip1 = WindowsInteropHelper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0); From c2e002be1e8c3cc55313309d8274c36b215e44f6 Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 19 Oct 2022 19:09:51 +0900 Subject: [PATCH 10/15] Change default position to MouseScreenCenter --- Flow.Launcher.Infrastructure/UserSettings/Settings.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index 89179c8540e..2db08b1b2e1 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -199,7 +199,7 @@ public bool HideNotifyIcon } public bool LeaveCmdOpen { get; set; } public bool HideWhenDeactive { get; set; } = true; - public LauncherPositions LauncherPosition { get; set; } = LauncherPositions.RememberLastLaunchLocation; + public LauncherPositions LauncherPosition { get; set; } = LauncherPositions.MouseScreenCenter; public bool IgnoreHotkeysOnFullscreen { get; set; } public HttpProxy Proxy { get; set; } = new HttpProxy(); From 17e671994453da6dcf927d0717ee72fa84b7f6ce Mon Sep 17 00:00:00 2001 From: DB p Date: Wed, 19 Oct 2022 19:25:00 +0900 Subject: [PATCH 11/15] Fix Positioning when use quickadjust --- Flow.Launcher/MainWindow.xaml.cs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 01374d849af..fcd0670c465 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -177,6 +177,12 @@ private void OnLoaded(object sender, RoutedEventArgs _) case nameof(Settings.Hotkey): UpdateNotifyIconText(); break; + case nameof(Settings.WindowLeft): + Left = _settings.WindowLeft; + break; + case nameof(Settings.WindowTop): + Top = _settings.WindowTop; + break; } }; } From 2f1dba8345d5eb9b325d62f09c4327af3b1185c5 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Thu, 20 Oct 2022 21:17:42 +1100 Subject: [PATCH 12/15] add Position Rest tool tip --- Flow.Launcher/Languages/en.xaml | 1 + Flow.Launcher/MainWindow.xaml.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index a92a68d0a8c..dd4cc318200 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -24,6 +24,7 @@ Game Mode Suspend the use of Hotkeys. Position Reset + Reset search window position Flow Launcher Settings diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index fcd0670c465..32271ac9c19 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -268,6 +268,7 @@ private void InitializeNotifyIcon() contextMenu.Items.Add(header); contextMenu.Items.Add(open); gamemode.ToolTip = InternationalizationManager.Instance.GetTranslation("GameModeToolTip"); + positionreset.ToolTip = InternationalizationManager.Instance.GetTranslation("PositionResetToolTip"); contextMenu.Items.Add(gamemode); contextMenu.Items.Add(positionreset); contextMenu.Items.Add(settings); From bcaa25ae03e3a6991fec0f464c95cde3757fc66a Mon Sep 17 00:00:00 2001 From: Jeremy Date: Thu, 20 Oct 2022 21:34:05 +1100 Subject: [PATCH 13/15] update variable names to SearchWindowPosition --- .../UserSettings/Settings.cs | 4 ++-- Flow.Launcher/Languages/en.xaml | 12 ++++++------ Flow.Launcher/MainWindow.xaml.cs | 14 +++++++------- Flow.Launcher/SettingWindow.xaml | 10 +++++----- Flow.Launcher/SettingWindow.xaml.cs | 2 +- Flow.Launcher/ViewModel/SettingWindowViewModel.cs | 14 +++++++------- 6 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index 2db08b1b2e1..d42fd425f62 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -199,7 +199,7 @@ public bool HideNotifyIcon } public bool LeaveCmdOpen { get; set; } public bool HideWhenDeactive { get; set; } = true; - public LauncherPositions LauncherPosition { get; set; } = LauncherPositions.MouseScreenCenter; + public SearchWindowPositions SearchWindowPosition { get; set; } = SearchWindowPositions.MouseScreenCenter; public bool IgnoreHotkeysOnFullscreen { get; set; } public HttpProxy Proxy { get; set; } = new HttpProxy(); @@ -225,7 +225,7 @@ public enum ColorSchemes Light, Dark } - public enum LauncherPositions + public enum SearchWindowPositions { RememberLastLaunchLocation, MouseScreenCenter, diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index dd4cc318200..4a0841940a2 100644 --- a/Flow.Launcher/Languages/en.xaml +++ b/Flow.Launcher/Languages/en.xaml @@ -35,13 +35,13 @@ Error setting launch on startup Hide Flow Launcher when focus is lost Do not show new version notifications - Launcher Position + Search Window Position Remember last launch location - Remember Last Location - Mouse Focused Screen - Center - Mouse Focused Screen - Center Top - Mouse Focused Screen - Left Top - Mouse Focused Screen - Right Top + Remember Last Location + Mouse Focused Screen - Center + Mouse Focused Screen - Center Top + Mouse Focused Screen - Left Top + Mouse Focused Screen - Right Top Language Last Query Style Show/Hide previous results when Flow Launcher is reactivated. diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index 32271ac9c19..d605cf9c987 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -189,25 +189,25 @@ private void OnLoaded(object sender, RoutedEventArgs _) private void InitializePosition() { - switch (_settings.LauncherPosition) + switch (_settings.SearchWindowPosition) { - case LauncherPositions.RememberLastLaunchLocation: + case SearchWindowPositions.RememberLastLaunchLocation: Top = _settings.WindowTop; Left = _settings.WindowLeft; break; - case LauncherPositions.MouseScreenCenter: + case SearchWindowPositions.MouseScreenCenter: Left = HorizonCenter(); Top = VerticalCenter(); break; - case LauncherPositions.MouseScreenCenterTop: + case SearchWindowPositions.MouseScreenCenterTop: Left = HorizonCenter(); Top = 10; break; - case LauncherPositions.MouseScreenLeftTop: + case SearchWindowPositions.MouseScreenLeftTop: Left = 10; Top = 10; break; - case LauncherPositions.MouseScreenRightTop: + case SearchWindowPositions.MouseScreenRightTop: Left = HorizonRight(); Top = 10; break; @@ -461,7 +461,7 @@ private void OnLocationChanged(object sender, EventArgs e) { if (_animating) return; - if (_settings.LauncherPosition == LauncherPositions.RememberLastLaunchLocation) + if (_settings.SearchWindowPosition == SearchWindowPositions.RememberLastLaunchLocation) { _settings.WindowLeft = Left; _settings.WindowTop = Top; diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 65b659a5a5a..70523fc299b 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -688,20 +688,20 @@ - + + SelectionChanged="SearchWindowPositionSelectedIndexChanged" /> diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index 42e7f7c340c..105c6fbea7b 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -435,7 +435,7 @@ private void OnPluginSettingKeydown(object sender, KeyEventArgs e) pluginFilterTxb.Focus(); } - private void LauncherPositionSelectedIndexChanged(object sender, SelectionChangedEventArgs e) + private void SearchWindowPositionSelectedIndexChanged(object sender, SelectionChangedEventArgs e) { } diff --git a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs index beb5e4c38d9..1ef1edeb9e8 100644 --- a/Flow.Launcher/ViewModel/SettingWindowViewModel.cs +++ b/Flow.Launcher/ViewModel/SettingWindowViewModel.cs @@ -387,23 +387,23 @@ public List ColorSchemes - public class LauncherPosition + public class SearchWindowPosition { public string Display { get; set; } - public LauncherPositions Value { get; set; } + public SearchWindowPositions Value { get; set; } } - public List LauncherPositions + public List SearchWindowPositions { get { - List modes = new List(); - var enums = (LauncherPositions[])Enum.GetValues(typeof(LauncherPositions)); + List modes = new List(); + var enums = (SearchWindowPositions[])Enum.GetValues(typeof(SearchWindowPositions)); foreach (var e in enums) { - var key = $"LauncherPosition{e}"; + var key = $"SearchWindowPosition{e}"; var display = _translater.GetTranslation(key); - var m = new LauncherPosition { Display = display, Value = e, }; + var m = new SearchWindowPosition { Display = display, Value = e, }; modes.Add(m); } return modes; From 00d95023ccf3f9eb040f4e26559ecfdfd6a437fa Mon Sep 17 00:00:00 2001 From: Jeremy Wu Date: Thu, 20 Oct 2022 21:37:56 +1100 Subject: [PATCH 14/15] formatting --- Flow.Launcher/MainWindow.xaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Flow.Launcher/MainWindow.xaml.cs b/Flow.Launcher/MainWindow.xaml.cs index d605cf9c987..fe6c119e12c 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -320,7 +320,7 @@ private void ToggleGameMode() private async void PositionReset() { _viewModel.Show(); - await Task.Delay(300); // If don't give a time, Positioning will be weired. + await Task.Delay(300); // If don't give a time, Positioning will be weird. Left = HorizonCenter(); Top = VerticalCenter(); } From 8a5895f61289b8ccbf36c24a4cd91a0e93d7b06b Mon Sep 17 00:00:00 2001 From: Jeremy Date: Thu, 20 Oct 2022 21:44:33 +1100 Subject: [PATCH 15/15] remove obsolete SearchWindowPositionSelectedIndexChanged --- Flow.Launcher/SettingWindow.xaml | 3 +-- Flow.Launcher/SettingWindow.xaml.cs | 6 ------ 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/Flow.Launcher/SettingWindow.xaml b/Flow.Launcher/SettingWindow.xaml index 70523fc299b..b763330c0ab 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -700,8 +700,7 @@ FontSize="14" ItemsSource="{Binding SearchWindowPositions}" SelectedValue="{Binding Settings.SearchWindowPosition}" - SelectedValuePath="Value" - SelectionChanged="SearchWindowPositionSelectedIndexChanged" /> + SelectedValuePath="Value" /> diff --git a/Flow.Launcher/SettingWindow.xaml.cs b/Flow.Launcher/SettingWindow.xaml.cs index 105c6fbea7b..51017b96bd7 100644 --- a/Flow.Launcher/SettingWindow.xaml.cs +++ b/Flow.Launcher/SettingWindow.xaml.cs @@ -435,12 +435,6 @@ private void OnPluginSettingKeydown(object sender, KeyEventArgs e) pluginFilterTxb.Focus(); } - private void SearchWindowPositionSelectedIndexChanged(object sender, SelectionChangedEventArgs e) - { - - } - - private void PluginStore_OnKeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.F && (Keyboard.Modifiers & ModifierKeys.Control) != 0)