]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/uiaction.cpp
Compilation fix for !wxUSE_OWNER_DRAWN.
[wxWidgets.git] / src / msw / uiaction.cpp
index 56ea8fa3a949cb64607498f4101c6c2509ce4235..5308d9c0f18d985bd05e28926274b8620e40b3b9 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Kevin Ollivier, Steven Lamerton, Vadim Zeitlin
 // Modified by:
 // Created:     2010-03-06
-// RCS-ID:      $Id$
 // Copyright:   (c) Kevin Ollivier
 //              (c) 2010 Steven Lamerton
 //              (c) 2010 Vadim Zeitlin
@@ -65,8 +64,10 @@ bool wxUIActionSimulator::MouseMove(long x, long y)
     int displayx, displayy;
     wxDisplaySize(&displayx, &displayy);
 
-    int scaledx = wxRound(((float)x / displayx) * 65535);
-    int scaledy = wxRound(((float)y / displayy) * 65535);
+    // Casts are safe because x and y are supposed to be less than the display
+    // size, so there is no danger of overflow.
+    DWORD scaledx = static_cast<DWORD>(ceil(x * 65535.0 / (displayx-1)));
+    DWORD scaledy = static_cast<DWORD>(ceil(y * 65535.0 / (displayy-1)));
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, scaledx, scaledy, 0, 0);
 
     return true;