diff --git a/lime/InputHandler.hx b/lime/InputHandler.hx index 11fefe4b3..9fd145d58 100644 --- a/lime/InputHandler.hx +++ b/lime/InputHandler.hx @@ -119,20 +119,22 @@ class InputHandler { lib.host.onchar({ raw : _event, code : _event.code, - char : _event.char, + char : _event.code, value : _event.value, flags : _event.flags, key : lime.helpers.Keys.toKeyValue(_event) }); } + _event.char = _event.code; + lime_onkeydown( _event ); } //lime_onchar @:noCompletion public function lime_onkeydown(_event:Dynamic) { - + if(lib.host.onkeydown != null && !keys_down.exists(_event.value)) { var _keyvalue = lime.helpers.Keys.toKeyValue(_event); @@ -144,6 +146,13 @@ class InputHandler { //flag it as down, because keyup removes it key_value_down.set(_keyvalue, true); + //some characters can come directly, not via the onchar, + //but we want end user to only require one check, + //if(event.char != 0) { //printable key } else { //other keys } + if(_event.char == null) { + _event.char = 0; + } + lib.host.onkeydown({ raw : _event, code : _event.code,