From 9dd4806b114575a95e5790c86ed5decdd965252c Mon Sep 17 00:00:00 2001 From: Bernhard Winkler Date: Wed, 8 Jul 2020 15:14:16 +0200 Subject: [PATCH 1/2] bugfix if wheel event fires with 0 value --- lib/source/gainput/mouse/GainputInputDeviceMouseWin.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h b/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h index 53e3efb4..1dc16ca9 100644 --- a/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h +++ b/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h @@ -101,6 +101,10 @@ class InputDeviceMouseImplWin : public InputDeviceMouseImpl buttonId = MouseButton3; pressed = true; } + else + { + return; + } break; } default: // Non-mouse message From 3e131432d91b4d4225128fc1925e6e2b002022b9 Mon Sep 17 00:00:00 2001 From: Bernhard Winkler Date: Wed, 8 Jul 2020 15:52:22 +0200 Subject: [PATCH 2/2] mousewheel was not working on windows. Use linux code. --- .../gainput/mouse/GainputInputDeviceMouseWin.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h b/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h index 1dc16ca9..160866db 100644 --- a/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h +++ b/lib/source/gainput/mouse/GainputInputDeviceMouseWin.h @@ -33,8 +33,16 @@ class InputDeviceMouseImplWin : public InputDeviceMouseImpl delta_ = delta; // Reset mouse wheel buttons - HandleButton(device_, nextState_, delta_, MouseButton3, false); - HandleButton(device_, nextState_, delta_, MouseButton4, false); + auto resetWheel = [&](const DeviceButtonId buttonId) { + const bool oldValue = previousState_->GetBool(buttonId); + if (oldValue) + { + const bool pressed = false; + HandleButton(device_, nextState_, delta_, buttonId, pressed); + } + }; + resetWheel(MouseButton3); + resetWheel(MouseButton4); *state_ = nextState_; }