Alexandre Julliard : user32: Support the MOUSEEVENTF_VIRTUALDESK flag in SendInput().
Alexandre Julliard
julliard at winehq.org
Mon Aug 27 16:18:15 CDT 2018
Module: wine
Branch: master
Commit: ac3e887e5d0bcfef13546ed0441b8179ec4430f2
URL: https://source.winehq.org/git/wine.git/?a=commit;h=ac3e887e5d0bcfef13546ed0441b8179ec4430f2
Author: Alexandre Julliard <julliard at winehq.org>
Date: Mon Aug 27 14:17:19 2018 +0200
user32: Support the MOUSEEVENTF_VIRTUALDESK flag in SendInput().
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/user32/input.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/user32/input.c b/dlls/user32/input.c
index 9d87393..72a68dd 100644
--- a/dlls/user32/input.c
+++ b/dlls/user32/input.c
@@ -141,8 +141,17 @@ static void update_mouse_coords( INPUT *input )
if (input->u.mi.dwFlags & MOUSEEVENTF_ABSOLUTE)
{
- input->u.mi.dx = (input->u.mi.dx * GetSystemMetrics( SM_CXSCREEN )) >> 16;
- input->u.mi.dy = (input->u.mi.dy * GetSystemMetrics( SM_CYSCREEN )) >> 16;
+ if (input->u.mi.dwFlags & MOUSEEVENTF_VIRTUALDESK)
+ {
+ RECT rc = get_virtual_screen_rect();
+ input->u.mi.dx = rc.left + ((input->u.mi.dx * (rc.right - rc.left)) >> 16);
+ input->u.mi.dy = rc.top + ((input->u.mi.dy * (rc.bottom - rc.top)) >> 16);
+ }
+ else
+ {
+ input->u.mi.dx = (input->u.mi.dx * GetSystemMetrics( SM_CXSCREEN )) >> 16;
+ input->u.mi.dy = (input->u.mi.dy * GetSystemMetrics( SM_CYSCREEN )) >> 16;
+ }
}
else
{
More information about the wine-cvs
mailing list