diff --git a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs index b9735ddc2..bf2ed565f 100644 --- a/Flow.Launcher.Infrastructure/UserSettings/Settings.cs +++ b/Flow.Launcher.Infrastructure/UserSettings/Settings.cs @@ -229,6 +229,8 @@ namespace Flow.Launcher.Infrastructure.UserSettings { RememberLastLaunchLocation, MouseScreenCenter, - MouseScreenCenterTop + MouseScreenCenterTop, + MouseScreenLeftTop, + MouseScreenRightTop } } diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml index ff6af2f3d..1c4b0e90d 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 6463d68c3..0917e99b8 100644 --- a/Flow.Launcher/MainWindow.xaml.cs +++ b/Flow.Launcher/MainWindow.xaml.cs @@ -197,6 +197,16 @@ namespace Flow.Launcher 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 @@ namespace Flow.Launcher 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 @@ namespace Flow.Launcher 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 11b798dae..6c40e736e 100644 --- a/Flow.Launcher/SettingWindow.xaml +++ b/Flow.Launcher/SettingWindow.xaml @@ -693,7 +693,7 @@ -