]> git.saurik.com Git - wxWidgets.git/commitdiff
Correct mouse event coordinates in wxMSW wxUIActionSimulator.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 4 Mar 2012 00:29:37 +0000 (00:29 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 4 Mar 2012 00:29:37 +0000 (00:29 +0000)
The rounding of the floating point division was not done quite correctly.

Closes #13383.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70797 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/uiaction.cpp

index 56ea8fa3a949cb64607498f4101c6c2509ce4235..2210395445caa0ea6536abe8a213e1ff775a5a70 100644 (file)
@@ -65,8 +65,8 @@ bool wxUIActionSimulator::MouseMove(long x, long y)
     int displayx, displayy;
     wxDisplaySize(&displayx, &displayy);
 
     int displayx, displayy;
     wxDisplaySize(&displayx, &displayy);
 
-    int scaledx = wxRound(((float)x / displayx) * 65535);
-    int scaledy = wxRound(((float)y / displayy) * 65535);
+    int scaledx = std::ceil((float)x * 65535.0 / (displayx-1));
+    int scaledy = std::ceil((float)y * 65535.0 / (displayy-1));
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, scaledx, scaledy, 0, 0);
 
     return true;
     mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, scaledx, scaledy, 0, 0);
 
     return true;