diff --git a/src/lib/platform/MSWindowsDesks.cpp b/src/lib/platform/MSWindowsDesks.cpp index c9afc4d31..b840fd590 100644 --- a/src/lib/platform/MSWindowsDesks.cpp +++ b/src/lib/platform/MSWindowsDesks.cpp @@ -720,7 +720,9 @@ void MSWindowsDesks::deskThread(void *vdesk) break; case DESKFLOW_MSG_FAKE_WHEEL: - // XXX -- add support for x-axis scrolling + if (msg.wParam != 0) { + send_mouse_input(MOUSEEVENTF_HWHEEL, 0, 0, (DWORD)msg.wParam); + } if (msg.lParam != 0) { send_mouse_input(MOUSEEVENTF_WHEEL, 0, 0, (DWORD)msg.lParam); } diff --git a/src/lib/platform/MSWindowsHook.cpp b/src/lib/platform/MSWindowsHook.cpp index b51b1a734..29e5c0018 100644 --- a/src/lib/platform/MSWindowsHook.cpp +++ b/src/lib/platform/MSWindowsHook.cpp @@ -509,6 +509,13 @@ static bool mouseHookHandler(WPARAM wParam, SInt32 x, SInt32 y, SInt32 data) return (g_mode == kHOOK_RELAY_EVENTS); case WM_MOUSEWHEEL: + if (g_mode == kHOOK_RELAY_EVENTS) { + // relay event + PostThreadMessage(g_threadID, DESKFLOW_MSG_MOUSE_WHEEL, 0, data); + } + return (g_mode == kHOOK_RELAY_EVENTS); + + case WM_MOUSEHWHEEL: if (g_mode == kHOOK_RELAY_EVENTS) { // relay event PostThreadMessage(g_threadID, DESKFLOW_MSG_MOUSE_WHEEL, data, 0); diff --git a/src/lib/platform/MSWindowsScreen.cpp b/src/lib/platform/MSWindowsScreen.cpp index f585110cf..9460c2f75 100644 --- a/src/lib/platform/MSWindowsScreen.cpp +++ b/src/lib/platform/MSWindowsScreen.cpp @@ -985,8 +985,7 @@ bool MSWindowsScreen::onPreDispatchPrimary(HWND, UINT message, WPARAM wParam, LP return onMouseMove(static_cast(wParam), static_cast(lParam)); case DESKFLOW_MSG_MOUSE_WHEEL: - // XXX -- support x-axis scrolling - return onMouseWheel(0, static_cast(wParam)); + return onMouseWheel(static_cast(wParam), static_cast(lParam)); case DESKFLOW_MSG_PRE_WARP: { // save position to compute delta of next motion