From fb6ff131944d3c3723d6963fbcf4f2fe5682c4ff Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Wed, 3 Aug 2016 00:28:25 +0200 Subject: [PATCH] Cast wParam to long not int. As in some rare cases it was overflowing. Fixes #607. --- src/Windows/Avalonia.Win32/WindowImpl.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 816b7fc790..9d2171b828 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -497,7 +497,7 @@ namespace Avalonia.Win32 timestamp, _owner, ScreenToClient(DipFromLParam(lParam)), - new Vector(0, ((int)wParam >> 16) / wheelDelta), GetMouseModifiers(wParam)); + new Vector(0, ((long)wParam >> 16) / wheelDelta), GetMouseModifiers(wParam)); break; case UnmanagedMethods.WindowsMessage.WM_MOUSEHWHEEL: @@ -506,7 +506,7 @@ namespace Avalonia.Win32 timestamp, _owner, ScreenToClient(DipFromLParam(lParam)), - new Vector(-((int)wParam >> 16) / wheelDelta,0), GetMouseModifiers(wParam)); + new Vector(-((long)wParam >> 16) / wheelDelta,0), GetMouseModifiers(wParam)); break; case UnmanagedMethods.WindowsMessage.WM_MOUSELEAVE: @@ -578,7 +578,7 @@ namespace Avalonia.Win32 static InputModifiers GetMouseModifiers(IntPtr wParam) { - var keys = (UnmanagedMethods.ModifierKeys)wParam.ToInt32(); + var keys = (UnmanagedMethods.ModifierKeys)wParam.ToInt64(); var modifiers = WindowsKeyboardDevice.Instance.Modifiers; if (keys.HasFlag(UnmanagedMethods.ModifierKeys.MK_LBUTTON)) modifiers |= InputModifiers.LeftMouseButton;