From 2cb0e7507022aa0449c1af264230784039b24e15 Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Wed, 17 Feb 2016 16:33:23 +0100 Subject: [PATCH] update MouseState buttons --- src/OpenTKGameWindow.cs | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/OpenTKGameWindow.cs b/src/OpenTKGameWindow.cs index c6f95ba3..fc17eae6 100644 --- a/src/OpenTKGameWindow.cs +++ b/src/OpenTKGameWindow.cs @@ -457,10 +457,18 @@ namespace Crow #endregion #region Mouse Handling - + void update_mouseButtonStates(ref MouseState e, OpenTK.Input.MouseState otk_e){ + for (int i = 0; i < MouseState.MaxButtons; i++) { + if (otk_e.IsButtonDown ((OpenTK.Input.MouseButton)i)) + e.EnableBit (i); + } + } void Mouse_Move(object sender, OpenTK.Input.MouseMoveEventArgs otk_e) { MouseMoveEventArgs e = new MouseMoveEventArgs (otk_e.X, otk_e.Y, otk_e.XDelta, otk_e.YDelta); + MouseState ms = e.Mouse; + update_mouseButtonStates (ref ms, otk_e.Mouse); + e.Mouse = ms; if (_activeWidget != null) { //first, ensure object is still in the graphic tree @@ -533,6 +541,9 @@ namespace Crow void Mouse_ButtonUp(object sender, OpenTK.Input.MouseButtonEventArgs otk_e) { MouseButtonEventArgs e = new MouseButtonEventArgs (otk_e.X, otk_e.Y, (Crow.MouseButton)otk_e.Button, otk_e.IsPressed); + MouseState ms = e.Mouse; + update_mouseButtonStates (ref ms, otk_e.Mouse); + e.Mouse = ms; if (_activeWidget == null) { MouseButtonUp.Raise (this, otk_e); @@ -551,6 +562,9 @@ namespace Crow void Mouse_ButtonDown(object sender, OpenTK.Input.MouseButtonEventArgs otk_e) { MouseButtonEventArgs e = new MouseButtonEventArgs (otk_e.X, otk_e.Y, (Crow.MouseButton)otk_e.Button, otk_e.IsPressed); + MouseState ms = e.Mouse; + update_mouseButtonStates (ref ms, otk_e.Mouse); + e.Mouse = ms; if (hoverWidget == null) { MouseButtonDown.Raise (this, otk_e); @@ -569,6 +583,9 @@ namespace Crow void Mouse_WheelChanged(object sender, OpenTK.Input.MouseWheelEventArgs otk_e) { MouseWheelEventArgs e = new MouseWheelEventArgs (otk_e.X, otk_e.Y, otk_e.Value, otk_e.Delta); + MouseState ms = e.Mouse; + update_mouseButtonStates (ref ms, otk_e.Mouse); + e.Mouse = ms; if (hoverWidget == null) { MouseWheelChanged.Raise (this, otk_e); -- 2.47.3