aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-08-04 15:54:21 +0000
committermarha <marha@users.sourceforge.net>2009-08-04 15:54:21 +0000
commit5268ef349182f450c3662eadf765515e1199a8a7 (patch)
tree419ff8ea0297f5a5bc426059087030ca51608b69 /xorg-server/hw
parent14ae761587a7f23b3cbf94f78be59899b016d4d2 (diff)
downloadvcxsrv-5268ef349182f450c3662eadf765515e1199a8a7.tar.gz
vcxsrv-5268ef349182f450c3662eadf765515e1199a8a7.tar.bz2
vcxsrv-5268ef349182f450c3662eadf765515e1199a8a7.zip
Solved mouse wheel not behaving correctly (especially when there are multiple monitors)
Diffstat (limited to 'xorg-server/hw')
-rw-r--r--xorg-server/hw/xwin/winwndproc.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/xorg-server/hw/xwin/winwndproc.c b/xorg-server/hw/xwin/winwndproc.c
index da0f4f4e6..de6b26404 100644
--- a/xorg-server/hw/xwin/winwndproc.c
+++ b/xorg-server/hw/xwin/winwndproc.c
@@ -966,14 +966,19 @@ winWindowProc (HWND hwnd, UINT message,
return 0;
case WM_MOUSEWHEEL:
+ {
+ POINT Pos;
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;
#if CYGDEBUG
winDebug ("winWindowProc - WM_MOUSEWHEEL\n");
#endif
- winMouseWheel (s_pScreen, GET_WHEEL_DELTA_WPARAM(wParam),GET_X_LPARAM(lParam),GET_Y_LPARAM(lParam));
+ Pos.x=GET_X_LPARAM(lParam);
+ Pos.y=GET_Y_LPARAM(lParam);
+ ScreenToClient(hwnd,&Pos);
+ winMouseWheel (s_pScreen, GET_WHEEL_DELTA_WPARAM(wParam),Pos.x,Pos.y);
break;
-
+ }
case WM_SETFOCUS:
if (s_pScreenPriv == NULL || s_pScreenInfo->fIgnoreInput)
break;