From 9ef456bf9a9ae61e66559ce79927605fb7fe3fdc Mon Sep 17 00:00:00 2001 From: varon Date: Mon, 12 Jun 2017 00:19:39 +0200 Subject: [PATCH] Fix duplicate scroll input on windows 10 --- src/OpenTK/Platform/Windows/WinGLNative.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/OpenTK/Platform/Windows/WinGLNative.cs b/src/OpenTK/Platform/Windows/WinGLNative.cs index f486d896..df106aa2 100644 --- a/src/OpenTK/Platform/Windows/WinGLNative.cs +++ b/src/OpenTK/Platform/Windows/WinGLNative.cs @@ -97,6 +97,9 @@ namespace OpenTK.Platform.Windows IntPtr cursor_handle = Functions.LoadCursor(CursorName.Arrow); int cursor_visible_count = 0; + // tracking for w10 duplicate scroll inputs. + IntPtr scrollHandle; + static readonly object SyncRoot = new object(); #endregion @@ -534,7 +537,12 @@ namespace OpenTK.Platform.Windows { // This is due to inconsistent behavior of the WParam value on 64bit arch, whese // wparam = 0xffffffffff880000 or wparam = 0x00000000ff100000 - OnMouseWheel(0, ((long)wParam << 32 >> 48) / 120.0f); + if (scrollHandle == IntPtr.Zero) { + scrollHandle = handle; + } + if (handle == scrollHandle) { + OnMouseWheel(0, ((long)wParam << 32 >> 48) / 120.0f); + } } void HandleMouseHWheel(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)