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 @@
-