From c6ecaf44424be159af1fdf677e02fbbe0c6650a5 Mon Sep 17 00:00:00 2001 From: Jay Sorg Date: Tue, 16 Oct 2012 09:57:12 -0700 Subject: [PATCH] win32: added mouse wheel support --- client/Windows/wf_event.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/client/Windows/wf_event.c b/client/Windows/wf_event.c index 94e7ac310..bc955a9e6 100644 --- a/client/Windows/wf_event.c +++ b/client/Windows/wf_event.c @@ -119,6 +119,27 @@ LRESULT CALLBACK wf_ll_kbd_proc(int nCode, WPARAM wParam, LPARAM lParam) return CallNextHookEx(NULL, nCode, wParam, lParam); } +static int xf_event_process_WM_MOUSEWHEEL(wfInfo* wfi, HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam, boolean app) +{ + int delta; + int flags; + rdpInput* input; + + DefWindowProc(hWnd, Msg, wParam, lParam); + input = wfi->instance->input; + delta = ((signed short)HIWORD(wParam)); /* GET_WHEEL_DELTA_WPARAM(wParam); */ + if (delta > 0) + { + flags = PTR_FLAGS_WHEEL | 0x0078; + } + else + { + flags = PTR_FLAGS_WHEEL | PTR_FLAGS_WHEEL_NEGATIVE | 0x0088; + } + input->MouseEvent(input, flags, 0, 0); + return 0; +} + LRESULT CALLBACK wf_event_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { HDC hdc; @@ -173,6 +194,10 @@ LRESULT CALLBACK wf_event_proc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam case WM_MOUSEMOVE: input->MouseEvent(input, PTR_FLAGS_MOVE, X_POS(lParam), Y_POS(lParam)); break; + + case WM_MOUSEWHEEL: + xf_event_process_WM_MOUSEWHEEL(wfi, hWnd, Msg, wParam, lParam, FALSE); + break; case WM_SETCURSOR: SetCursor(wfi->cursor);