Merge branch 'develop' into 8.1.0-Dev
This commit is contained in:
@@ -555,11 +555,13 @@ class HTML5Window
|
||||
|
||||
private function handleInputEvent(event:InputEvent):Void
|
||||
{
|
||||
if (imeCompositionActive)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// In order to ensure that the browser will fire clipboard events, we always need to have something selected.
|
||||
// Therefore, `value` cannot be "".
|
||||
|
||||
if (inputing) return;
|
||||
|
||||
if (textInput.value != dummyCharacter)
|
||||
{
|
||||
var value = StringTools.replace(textInput.value, dummyCharacter, "");
|
||||
@@ -1124,7 +1126,12 @@ class HTML5Window
|
||||
if (textInput == null)
|
||||
{
|
||||
textInput = cast Browser.document.createElement('input');
|
||||
#if lime_enable_html5_ime
|
||||
textInput.type = 'text';
|
||||
#else
|
||||
// use password instead of text to avoid IME issues on Android
|
||||
textInput.type = 'password';
|
||||
#end
|
||||
textInput.style.position = 'absolute';
|
||||
textInput.style.opacity = "0";
|
||||
textInput.style.color = "transparent";
|
||||
@@ -1178,6 +1185,10 @@ class HTML5Window
|
||||
{
|
||||
if (textInput != null)
|
||||
{
|
||||
// call blur() before removing the compositionend listener
|
||||
// to ensure that incomplete IME input is committed
|
||||
textInput.blur();
|
||||
|
||||
textInput.removeEventListener('input', handleInputEvent, true);
|
||||
textInput.removeEventListener('blur', handleFocusEvent, true);
|
||||
textInput.removeEventListener('cut', handleCutOrCopyEvent, true);
|
||||
@@ -1186,7 +1197,6 @@ class HTML5Window
|
||||
textInput.removeEventListener('compositionstart', handleCompositionstartEvent, true);
|
||||
textInput.removeEventListener('compositionend', handleCompositionendEvent, true);
|
||||
|
||||
textInput.blur();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1198,16 +1208,16 @@ class HTML5Window
|
||||
return textInputRect = value;
|
||||
}
|
||||
|
||||
private var inputing = false;
|
||||
private var imeCompositionActive = false;
|
||||
|
||||
public function handleCompositionstartEvent(e):Void
|
||||
{
|
||||
inputing = true;
|
||||
imeCompositionActive = true;
|
||||
}
|
||||
|
||||
public function handleCompositionendEvent(e):Void
|
||||
{
|
||||
inputing = false;
|
||||
imeCompositionActive = false;
|
||||
handleInputEvent(e);
|
||||
}
|
||||
|
||||
|
||||
@@ -361,7 +361,7 @@ class NativeHTTPRequest
|
||||
|
||||
return promise.future;
|
||||
}
|
||||
|
||||
|
||||
private function buildBuffer() {
|
||||
bytes = buffer.getBytes();
|
||||
return bytes;
|
||||
@@ -393,9 +393,9 @@ class NativeHTTPRequest
|
||||
}
|
||||
|
||||
private function curl_onWrite(curl:CURL, output:Bytes):Int
|
||||
{
|
||||
{
|
||||
buffer.addBytes(output, 0, output.length);
|
||||
|
||||
|
||||
return output.length;
|
||||
}
|
||||
|
||||
|
||||
@@ -1054,9 +1054,9 @@ class Image
|
||||
@param sourceRect The source rectangle to use when copying
|
||||
@param destPoint The destination point in this `Image` to copy into
|
||||
@param redMultiplier A red multiplier to use when blitting
|
||||
@param greenMultiplier A red multiplier to use when blitting
|
||||
@param blueMultiplier A red multiplier to use when blitting
|
||||
@param alphaMultiplier A red multiplier to use when blitting
|
||||
@param greenMultiplier A green multiplier to use when blitting
|
||||
@param blueMultiplier A blue multiplier to use when blitting
|
||||
@param alphaMultiplier An alpha multiplier to use when blitting
|
||||
**/
|
||||
public function merge(sourceImage:Image, sourceRect:Rectangle, destPoint:Vector2, redMultiplier:Int, greenMultiplier:Int, blueMultiplier:Int,
|
||||
alphaMultiplier:Int):Void
|
||||
|
||||
@@ -127,7 +127,7 @@ class JNI
|
||||
className = transformClassName(className);
|
||||
return new JNIMemberField(NativeCFFI.lime_jni_create_field(className, memberName, signature, false));
|
||||
#else
|
||||
return null;
|
||||
return new JNIMemberField(null);
|
||||
#end
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ class JNI
|
||||
className = transformClassName(className);
|
||||
return new JNIStaticField(NativeCFFI.lime_jni_create_field(className, memberName, signature, true));
|
||||
#else
|
||||
return null;
|
||||
return new JNIStaticField(null);
|
||||
#end
|
||||
}
|
||||
|
||||
@@ -242,7 +242,7 @@ class JNI
|
||||
{
|
||||
initialized = true;
|
||||
|
||||
#if android
|
||||
#if (android && !macro)
|
||||
var method = System.load("lime", "lime_jni_init_callback", 1);
|
||||
method(onCallback);
|
||||
#end
|
||||
|
||||
@@ -296,7 +296,7 @@ class System
|
||||
#elseif mac
|
||||
Sys.command("/usr/bin/open", [path]);
|
||||
#elseif linux
|
||||
Sys.command("/usr/bin/xdg-open", [path, "&"]);
|
||||
Sys.command("/usr/bin/xdg-open", [path]);
|
||||
#elseif (js && html5)
|
||||
Browser.window.open(path, "_blank");
|
||||
#elseif flash
|
||||
|
||||
@@ -93,13 +93,16 @@ class AIRHelper
|
||||
|
||||
if (project.keystore != null)
|
||||
{
|
||||
var keystore = Path.tryFullPath(project.keystore.path);
|
||||
var keystoreType = project.keystore.type != null ? project.keystore.type : "pkcs12";
|
||||
|
||||
signingOptions.push("-storetype");
|
||||
signingOptions.push(keystoreType);
|
||||
signingOptions.push("-keystore");
|
||||
signingOptions.push(keystore);
|
||||
|
||||
if (project.keystore.path != null)
|
||||
{
|
||||
var keystore = Path.tryFullPath(project.keystore.path);
|
||||
signingOptions.push("-keystore");
|
||||
signingOptions.push(keystore);
|
||||
}
|
||||
|
||||
if (project.keystore.alias != null)
|
||||
{
|
||||
|
||||
@@ -1278,7 +1278,10 @@ class HXProject extends Script
|
||||
|
||||
if (keystore != null)
|
||||
{
|
||||
context.KEY_STORE = Path.tryFullPath(keystore.path);
|
||||
if (keystore.path != null)
|
||||
{
|
||||
context.KEY_STORE = Path.tryFullPath(keystore.path);
|
||||
}
|
||||
|
||||
if (keystore.password != null)
|
||||
{
|
||||
|
||||
@@ -1670,20 +1670,21 @@ class ProjectXMLParser extends HXProject
|
||||
parseXML(element, "", extensionPath);
|
||||
|
||||
case "certificate":
|
||||
var path = null;
|
||||
|
||||
if (element.has.path)
|
||||
if (element.has.path || element.has.type)
|
||||
{
|
||||
path = element.att.path;
|
||||
}
|
||||
else if (element.has.keystore)
|
||||
{
|
||||
path = element.att.keystore;
|
||||
keystore = new Keystore();
|
||||
}
|
||||
|
||||
if (path != null)
|
||||
if (keystore != null)
|
||||
{
|
||||
keystore = new Keystore(Path.combine(extensionPath, substitute(element.att.path)));
|
||||
if (element.has.path)
|
||||
{
|
||||
keystore.path = Path.combine(extensionPath, substitute(element.att.path));
|
||||
}
|
||||
else if (element.has.keystore)
|
||||
{
|
||||
keystore.path = Path.combine(extensionPath, substitute(element.att.keystore));
|
||||
}
|
||||
|
||||
if (element.has.type)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user