Browse Source

Account for DPI scaling between screen and client.

pull/488/head
Steven Kirk 11 years ago
parent
commit
847796e9c1
  1. 3
      src/Windows/Perspex.Win32/WindowImpl.cs

3
src/Windows/Perspex.Win32/WindowImpl.cs

@ -238,11 +238,12 @@ namespace Perspex.Win32
{ {
var p = new UnmanagedMethods.POINT { X = (int)point.X, Y = (int)point.Y }; var p = new UnmanagedMethods.POINT { X = (int)point.X, Y = (int)point.Y };
UnmanagedMethods.ScreenToClient(_hwnd, ref p); UnmanagedMethods.ScreenToClient(_hwnd, ref p);
return new Point(p.X, p.Y); return new Point(p.X, p.Y) / Scaling;
} }
public Point PointToScreen(Point point) public Point PointToScreen(Point point)
{ {
point *= Scaling;
var p = new UnmanagedMethods.POINT { X = (int)point.X, Y = (int)point.Y }; var p = new UnmanagedMethods.POINT { X = (int)point.X, Y = (int)point.Y };
UnmanagedMethods.ClientToScreen(_hwnd, ref p); UnmanagedMethods.ClientToScreen(_hwnd, ref p);
return new Point(p.X, p.Y); return new Point(p.X, p.Y);

Loading…
Cancel
Save