diff options
author | marha <marha@users.sourceforge.net> | 2009-08-04 15:54:21 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-08-04 15:54:21 +0000 |
commit | 5268ef349182f450c3662eadf765515e1199a8a7 (patch) | |
tree | 419ff8ea0297f5a5bc426059087030ca51608b69 /xorg-server/hw/xwin/winwndproc.c | |
parent | 14ae761587a7f23b3cbf94f78be59899b016d4d2 (diff) | |
download | vcxsrv-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/xwin/winwndproc.c')
-rw-r--r-- | xorg-server/hw/xwin/winwndproc.c | 9 |
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; |