From 3fa6c2c10f7d4ca06fd30e2442dcd25f492cc351 Mon Sep 17 00:00:00 2001 From: Robin Gareus Date: Sun, 16 Nov 2014 17:27:46 +0100 Subject: Fix windows scroll wheel. Conflicts: pugl/pugl_win.cpp --- pugl/pugl_win.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pugl/pugl_win.cpp b/pugl/pugl_win.cpp index 5956fdd..ead0236 100644 --- a/pugl/pugl_win.cpp +++ b/pugl/pugl_win.cpp @@ -348,18 +348,22 @@ handleMessage(PuglView* view, UINT message, WPARAM wParam, LPARAM lParam) break; case WM_MOUSEWHEEL: if (view->scrollFunc) { + POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; + ScreenToClient(view->impl->hwnd, &pt); view->event_timestamp_ms = GetMessageTime(); view->scrollFunc( - view, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), - 0.0f, (int16_t)HIWORD(wParam) / (float)WHEEL_DELTA); + view, pt.x, pt.y, + 0.0f, GET_WHEEL_DELTA_WPARAM(wParam) / (float)WHEEL_DELTA); } break; case WM_MOUSEHWHEEL: if (view->scrollFunc) { + POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) }; + ScreenToClient(view->impl->hwnd, &pt); view->event_timestamp_ms = GetMessageTime(); view->scrollFunc( - view, GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam), - (int16_t)HIWORD(wParam) / float(WHEEL_DELTA), 0.0f); + view, pt.x, pt.y, + GET_WHEEL_DELTA_WPARAM(wParam) / (float)WHEEL_DELTA, 0.0f); } break; case WM_KEYDOWN: -- cgit v1.2.3