aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorjp <jp_bruyere@hotmail.com>2016-03-15 07:59:09 +0100
committerjp <jp_bruyere@hotmail.com>2016-03-15 07:59:09 +0100
commit97e0683c77461e7f13ab40ff9bc6f8a56c7a9d7e (patch)
tree001ac2012271766dd7a9ebef4977fcb24409d591
parente21653876231f1ad18d44b1953582a5a87c9e1d6 (diff)
keyboard event handling
-rw-r--r--OTKCrow/OpenTKGameWindow.cs7
-rw-r--r--src/Interface.cs19
2 files changed, 17 insertions, 9 deletions
diff --git a/OTKCrow/OpenTKGameWindow.cs b/OTKCrow/OpenTKGameWindow.cs
index dc687b64..94a52a0c 100644
--- a/OTKCrow/OpenTKGameWindow.cs
+++ b/OTKCrow/OpenTKGameWindow.cs
@@ -317,15 +317,10 @@ namespace Crow
#endregion
#region keyboard Handling
- KeyboardState Keyboad = new KeyboardState ();
void Keyboard_KeyDown(object sender, OpenTK.Input.KeyboardKeyEventArgs otk_e)
{
-// if (_focusedWidget == null) {
+ if (!CrowInterface.ProcessKeyDown((int)otk_e.Key))
KeyboardKeyDown.Raise (this, otk_e);
-// return;
-// }
- Keyboad.SetKeyState ((Crow.Key)otk_e.Key, true);
- KeyboardKeyEventArgs e = new KeyboardKeyEventArgs((Crow.Key)otk_e.Key, otk_e.IsRepeat,Keyboad);
}
#endregion
}
diff --git a/src/Interface.cs b/src/Interface.cs
index 1084ef7b..75310918 100644
--- a/src/Interface.cs
+++ b/src/Interface.cs
@@ -647,9 +647,22 @@ namespace Crow
hoverWidget.onMouseWheel (this, e);
return true;
}
-// public bool ProcessKeyDown(int Key){
-//
-// }
+ public bool ProcessKeyDown(int Key){
+ Keyboard.SetKeyState ((Crow.Key)Key, true);
+ if (_focusedWidget == null)
+ return false;
+ KeyboardKeyEventArgs e = new KeyboardKeyEventArgs((Crow.Key)Key, false, Keyboard);
+ _focusedWidget.onKeyDown (this, e);
+ return true;
+ }
+ public bool ProcessKeyUp(int Key){
+ Keyboard.SetKeyState ((Crow.Key)Key, false);
+ if (_activeWidget == null)
+ return false;
+ //KeyboardKeyEventArgs e = new KeyboardKeyEventArgs((Crow.Key)Key, false, Keyboard);
+ return true;
+ }
+
volatile bool mouseRepeatOn;
volatile int mouseRepeatCount;
Thread mouseRepeatThread;