From 8e7e54e49f7e09e327f448da5501465500e4843f Mon Sep 17 00:00:00 2001 From: Koichiro IWAO Date: Fri, 27 Oct 2017 14:16:18 +0900 Subject: [PATCH] xrdp_wm: handle horizontal mouse wheel events --- xrdp/xrdp_wm.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/xrdp/xrdp_wm.c b/xrdp/xrdp_wm.c index 1f5b4953..8c35c5ef 100644 --- a/xrdp/xrdp_wm.c +++ b/xrdp/xrdp_wm.c @@ -1683,6 +1683,7 @@ xrdp_wm_process_input_mouse(struct xrdp_wm *self, int device_flags, } } + /* vertical mouse wheel */ if (device_flags & 0x200) /* PTRFLAGS_WHEEL */ { if (device_flags & 0x100) /* PTRFLAGS_WHEEL_NEGATIVE */ @@ -1695,6 +1696,24 @@ xrdp_wm_process_input_mouse(struct xrdp_wm *self, int device_flags, } } + /* horizontal mouse wheel */ + + /** + * As mstsc does MOUSE not MOUSEX for horizontal scrolling, + * PTRFLAGS_HWHEEL must be handled here. + */ + if (device_flags & 0x400) /* PTRFLAGS_HWHEEL */ + { + if (device_flags & 0x100) /* PTRFLAGS_WHEEL_NEGATIVE */ + { + xrdp_wm_mouse_click(self, 0, 0, 6, 0); + } + else + { + xrdp_wm_mouse_click(self, 0, 0, 7, 0); + } + } + return 0; }