mirror of
https://github.com/Ryujinx/Opentk.git
synced 2025-07-05 17:30:34 +00:00
Merge pull request #539 from jeske/issue_488_input_events_fired_more_than_once
fix issue #488, input events fired more than once
This commit is contained in:
commit
1e73f38ecd
|
@ -97,9 +97,6 @@ namespace OpenTK.Platform.Windows
|
||||||
IntPtr cursor_handle = Functions.LoadCursor(CursorName.Arrow);
|
IntPtr cursor_handle = Functions.LoadCursor(CursorName.Arrow);
|
||||||
int cursor_visible_count = 0;
|
int cursor_visible_count = 0;
|
||||||
|
|
||||||
// tracking for w10 duplicate scroll inputs.
|
|
||||||
IntPtr scrollHandle;
|
|
||||||
|
|
||||||
static readonly object SyncRoot = new object();
|
static readonly object SyncRoot = new object();
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -537,12 +534,7 @@ namespace OpenTK.Platform.Windows
|
||||||
{
|
{
|
||||||
// This is due to inconsistent behavior of the WParam value on 64bit arch, whese
|
// This is due to inconsistent behavior of the WParam value on 64bit arch, whese
|
||||||
// wparam = 0xffffffffff880000 or wparam = 0x00000000ff100000
|
// wparam = 0xffffffffff880000 or wparam = 0x00000000ff100000
|
||||||
if (scrollHandle == IntPtr.Zero) {
|
OnMouseWheel(0, ((long)wParam << 32 >> 48) / 120.0f);
|
||||||
scrollHandle = handle;
|
|
||||||
}
|
|
||||||
if (handle == scrollHandle) {
|
|
||||||
OnMouseWheel(0, ((long)wParam << 32 >> 48) / 120.0f);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void HandleMouseHWheel(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
|
void HandleMouseHWheel(IntPtr handle, WindowMessage message, IntPtr wParam, IntPtr lParam)
|
||||||
|
@ -755,43 +747,43 @@ namespace OpenTK.Platform.Windows
|
||||||
|
|
||||||
case WindowMessage.MOUSEWHEEL:
|
case WindowMessage.MOUSEWHEEL:
|
||||||
HandleMouseWheel(handle, message, wParam, lParam);
|
HandleMouseWheel(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.MOUSEHWHEEL:
|
case WindowMessage.MOUSEHWHEEL:
|
||||||
HandleMouseHWheel(handle, message, wParam, lParam);
|
HandleMouseHWheel(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.LBUTTONDOWN:
|
case WindowMessage.LBUTTONDOWN:
|
||||||
HandleLButtonDown(handle, message, wParam, lParam);
|
HandleLButtonDown(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.MBUTTONDOWN:
|
case WindowMessage.MBUTTONDOWN:
|
||||||
HandleMButtonDown(handle, message, wParam, lParam);
|
HandleMButtonDown(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.RBUTTONDOWN:
|
case WindowMessage.RBUTTONDOWN:
|
||||||
HandleRButtonDown(handle, message, wParam, lParam);
|
HandleRButtonDown(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.XBUTTONDOWN:
|
case WindowMessage.XBUTTONDOWN:
|
||||||
HandleXButtonDown(handle, message, wParam, lParam);
|
HandleXButtonDown(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.LBUTTONUP:
|
case WindowMessage.LBUTTONUP:
|
||||||
HandleLButtonUp(handle, message, wParam, lParam);
|
HandleLButtonUp(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.MBUTTONUP:
|
case WindowMessage.MBUTTONUP:
|
||||||
HandleMButtonUp(handle, message, wParam, lParam);
|
HandleMButtonUp(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.RBUTTONUP:
|
case WindowMessage.RBUTTONUP:
|
||||||
HandleRButtonUp(handle, message, wParam, lParam);
|
HandleRButtonUp(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
case WindowMessage.XBUTTONUP:
|
case WindowMessage.XBUTTONUP:
|
||||||
HandleXButtonUp(handle, message, wParam, lParam);
|
HandleXButtonUp(handle, message, wParam, lParam);
|
||||||
break;
|
return IntPtr.Zero;
|
||||||
|
|
||||||
// Keyboard events:
|
// Keyboard events:
|
||||||
case WindowMessage.KEYDOWN:
|
case WindowMessage.KEYDOWN:
|
||||||
|
@ -841,7 +833,7 @@ namespace OpenTK.Platform.Windows
|
||||||
{
|
{
|
||||||
if (mouse_capture_count == 0)
|
if (mouse_capture_count == 0)
|
||||||
{
|
{
|
||||||
Functions.SetCapture(window.Handle);
|
Functions.SetCapture(child_window.Handle);
|
||||||
}
|
}
|
||||||
mouse_capture_count++;
|
mouse_capture_count++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue