Improve HTML5 onTextInput

This commit is contained in:
Joshua Granick
2015-08-07 21:54:14 -07:00
parent 1835e67d38
commit 6573d57e0e
2 changed files with 17 additions and 3 deletions

View File

@@ -192,7 +192,7 @@ class HTML5Application {
//}
var keyCode = cast convertKeyCode (event.keyCode != null ? event.keyCode : event.which);
var modifier = (event.shiftKey ? (KeyModifier.SHIFT) : 0) | (event.ctrlKey ? (KeyModifier.CTRL) : 0) | (event.altKey ? (KeyModifier.ALT) : 0) | (event.metaKey ? (KeyModifier.META) : 0);
var modifier = cast (event.shiftKey ? (KeyModifier.SHIFT) : 0) | (event.ctrlKey ? (KeyModifier.CTRL) : 0) | (event.altKey ? (KeyModifier.ALT) : 0) | (event.metaKey ? (KeyModifier.META) : 0);
if (event.type == "keydown") {
@@ -200,7 +200,15 @@ class HTML5Application {
if (parent.window.enableTextEvents) {
parent.window.onTextInput.dispatch (String.fromCharCode (event.keyCode));
if (event.keyCode >= 65 && event.keyCode <= 90 && !modifier.shiftKey) {
parent.window.onTextInput.dispatch (String.fromCharCode (event.keyCode + 32));
} else {
parent.window.onTextInput.dispatch (String.fromCharCode (event.keyCode));
}
}

View File

@@ -241,5 +241,11 @@ package lime.ui;
var EJECT = 0x40000119;
var SLEEP = 0x4000011A;
@:op(A > B) private static inline function gt (a:KeyCode, b:KeyCode):Bool { return (a:Int) > (b:Int); }
@:op(A >= B) private static inline function gte (a:KeyCode, b:KeyCode):Bool { return (a:Int) >= (b:Int); }
@:op(A < B) private static inline function lt (a:KeyCode, b:KeyCode):Bool { return (a:Int) < (b:Int); }
@:op(A <= B) private static inline function lte (a:KeyCode, b:KeyCode):Bool { return (a:Int) <= (b:Int); }
@:op(A + B) private static inline function plus (a:KeyCode, b:Int):KeyCode { return (a:Int) + b; }
}
}