|
1 | | -using System; |
| 1 | +using System; |
2 | 2 | using System.ComponentModel; |
3 | 3 | using System.Linq; |
4 | 4 | using System.Media; |
|
30 | 30 | using Key = System.Windows.Input.Key; |
31 | 31 | using MouseButtons = System.Windows.Forms.MouseButtons; |
32 | 32 | using NotifyIcon = System.Windows.Forms.NotifyIcon; |
33 | | -using Screen = System.Windows.Forms.Screen; |
34 | 33 |
|
35 | 34 | namespace Flow.Launcher |
36 | 35 | { |
@@ -532,7 +531,7 @@ private void OnMouseDown(object sender, MouseButtonEventArgs e) |
532 | 531 | double yRatio = mousePos.Y / maxHeight; |
533 | 532 |
|
534 | 533 | // Current monitor information |
535 | | - var screen = Screen.FromHandle(new WindowInteropHelper(this).Handle); |
| 534 | + var screen = MonitorInfo.GetNearestDisplayMonitor(new WindowInteropHelper(this).Handle); |
536 | 535 | var workingArea = screen.WorkingArea; |
537 | 536 | var screenLeftTop = Win32Helper.TransformPixelsToDIP(this, workingArea.X, workingArea.Y); |
538 | 537 |
|
@@ -954,67 +953,67 @@ private void GetDpi(out double dpiX, out double dpiY) |
954 | 953 | } |
955 | 954 | } |
956 | 955 |
|
957 | | - private Screen SelectedScreen() |
| 956 | + private MonitorInfo SelectedScreen() |
958 | 957 | { |
959 | | - Screen screen; |
| 958 | + MonitorInfo screen; |
960 | 959 | switch (_settings.SearchWindowScreen) |
961 | 960 | { |
962 | 961 | case SearchWindowScreens.Cursor: |
963 | | - screen = Screen.FromPoint(System.Windows.Forms.Cursor.Position); |
964 | | - break; |
965 | | - case SearchWindowScreens.Primary: |
966 | | - screen = Screen.PrimaryScreen; |
| 962 | + screen = MonitorInfo.GetCursorDisplayMonitor(); |
967 | 963 | break; |
968 | 964 | case SearchWindowScreens.Focus: |
969 | | - var foregroundWindowHandle = Win32Helper.GetForegroundWindow(); |
970 | | - screen = Screen.FromHandle(foregroundWindowHandle); |
| 965 | + screen = MonitorInfo.GetNearestDisplayMonitor(Win32Helper.GetForegroundWindow()); |
| 966 | + break; |
| 967 | + case SearchWindowScreens.Primary: |
| 968 | + screen = MonitorInfo.GetPrimaryDisplayMonitor(); |
971 | 969 | break; |
972 | 970 | case SearchWindowScreens.Custom: |
973 | | - if (_settings.CustomScreenNumber <= Screen.AllScreens.Length) |
974 | | - screen = Screen.AllScreens[_settings.CustomScreenNumber - 1]; |
| 971 | + var allScreens = MonitorInfo.GetDisplayMonitors(); |
| 972 | + if (_settings.CustomScreenNumber <= allScreens.Count) |
| 973 | + screen = allScreens[_settings.CustomScreenNumber - 1]; |
975 | 974 | else |
976 | | - screen = Screen.AllScreens[0]; |
| 975 | + screen = allScreens[0]; |
977 | 976 | break; |
978 | 977 | default: |
979 | | - screen = Screen.AllScreens[0]; |
| 978 | + screen = MonitorInfo.GetDisplayMonitors()[0]; |
980 | 979 | break; |
981 | 980 | } |
982 | 981 |
|
983 | | - return screen ?? Screen.AllScreens[0]; |
| 982 | + return screen ?? MonitorInfo.GetDisplayMonitors()[0]; |
984 | 983 | } |
985 | 984 |
|
986 | | - private double HorizonCenter(Screen screen) |
| 985 | + private double HorizonCenter(MonitorInfo screen) |
987 | 986 | { |
988 | 987 | var dip1 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0); |
989 | 988 | var dip2 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0); |
990 | 989 | var left = (dip2.X - ActualWidth) / 2 + dip1.X; |
991 | 990 | return left; |
992 | 991 | } |
993 | 992 |
|
994 | | - private double VerticalCenter(Screen screen) |
| 993 | + private double VerticalCenter(MonitorInfo screen) |
995 | 994 | { |
996 | 995 | var dip1 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y); |
997 | 996 | var dip2 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Height); |
998 | 997 | var top = (dip2.Y - QueryTextBox.ActualHeight) / 4 + dip1.Y; |
999 | 998 | return top; |
1000 | 999 | } |
1001 | 1000 |
|
1002 | | - private double HorizonRight(Screen screen) |
| 1001 | + private double HorizonRight(MonitorInfo screen) |
1003 | 1002 | { |
1004 | 1003 | var dip1 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0); |
1005 | 1004 | var dip2 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.Width, 0); |
1006 | 1005 | var left = (dip1.X + dip2.X - ActualWidth) - 10; |
1007 | 1006 | return left; |
1008 | 1007 | } |
1009 | 1008 |
|
1010 | | - private double HorizonLeft(Screen screen) |
| 1009 | + private double HorizonLeft(MonitorInfo screen) |
1011 | 1010 | { |
1012 | 1011 | var dip1 = Win32Helper.TransformPixelsToDIP(this, screen.WorkingArea.X, 0); |
1013 | 1012 | var left = dip1.X + 10; |
1014 | 1013 | return left; |
1015 | 1014 | } |
1016 | 1015 |
|
1017 | | - public double VerticalTop(Screen screen) |
| 1016 | + private double VerticalTop(MonitorInfo screen) |
1018 | 1017 | { |
1019 | 1018 | var dip1 = Win32Helper.TransformPixelsToDIP(this, 0, screen.WorkingArea.Y); |
1020 | 1019 | var top = dip1.Y + 10; |
|
0 commit comments