Merge branch 'develop' into 8.1.0-Dev

This commit is contained in:
Josh Tynjala
2023-02-22 08:52:43 -08:00
14 changed files with 144 additions and 232 deletions

View File

@@ -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);
}

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)
{

View File

@@ -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)
{

View File

@@ -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)
{