diff --git a/.gitmodules b/.gitmodules index f53ffa4de..c2d654adf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,63 +1,64 @@ [submodule "project/lib/vorbis"] path = project/lib/vorbis - url = https://github.com/native-toolkit/vorbis + url = https://github.com/openfl/libvorbis [submodule "project/lib/sdl"] path = project/lib/sdl - url = https://github.com/native-toolkit/sdl + url = https://github.com/openfl/libsdl [submodule "project/lib/openal"] path = project/lib/openal - url = https://github.com/native-toolkit/openal + url = https://github.com/openfl/libopenal [submodule "project/lib/curl"] path = project/lib/curl - url = https://github.com/native-toolkit/curl + url = https://github.com/openfl/libcurl [submodule "project/lib/ogg"] path = project/lib/ogg - url = https://github.com/native-toolkit/ogg + url = https://github.com/openfl/libogg [submodule "project/lib/zlib"] path = project/lib/zlib - url = https://github.com/native-toolkit/zlib + url = https://github.com/openfl/libzlib [submodule "project/lib/neko"] path = project/lib/neko - url = https://github.com/native-toolkit/neko + url = https://github.com/openfl/libneko [submodule "project/lib/png"] path = project/lib/png - url = https://github.com/native-toolkit/png + url = https://github.com/openfl/libpng [submodule "project/lib/jpeg"] path = project/lib/jpeg - url = https://github.com/native-toolkit/jpeg + url = https://github.com/openfl/libjpeg [submodule "project/lib/freetype"] path = project/lib/freetype - url = https://github.com/native-toolkit/freetype + url = https://github.com/openfl/libfreetype [submodule "project/lib/harfbuzz"] path = project/lib/harfbuzz - url = https://github.com/native-toolkit/harfbuzz + url = https://github.com/openfl/libharfbuzz [submodule "project/lib/cairo"] path = project/lib/cairo - url = https://github.com/native-toolkit/cairo + url = https://github.com/openfl/libcairo [submodule "project/lib/pixman"] path = project/lib/pixman - url = https://github.com/native-toolkit/pixman + url = https://github.com/openfl/libpixman [submodule "project/lib/lzma"] path = project/lib/lzma - url = https://github.com/native-toolkit/lzma + url = https://github.com/openfl/liblzma [submodule "project/lib/tinyfiledialogs"] path = project/lib/tinyfiledialogs - url = https://github.com/native-toolkit/tinyfiledialogs + url = https://github.com/openfl/libtinyfiledialogs [submodule "project/lib/efsw"] path = project/lib/efsw - url = https://github.com/native-toolkit/efsw + url = https://github.com/openfl/libefsw [submodule "project/lib/vpx"] path = project/lib/vpx - url = https://github.com/native-toolkit/vpx + url = https://github.com/openfl/libvpx [submodule "project/lib/webm"] path = project/lib/webm - url = https://github.com/native-toolkit/webm + url = https://github.com/openfl/libwebm [submodule "project/lib/mbedtls"] path = project/lib/mbedtls - url = https://github.com/native-toolkit/mbedtls + url = https://github.com/openfl/libmbedtls [submodule "project/lib/mojoal"] path = project/lib/mojoal - url = https://github.com/native-toolkit/mojoal + url = https://github.com/openfl/libmojoal [submodule "project/lib/hashlink"] path = project/lib/hashlink url = https://github.com/HaxeFoundation/hashlink + \ No newline at end of file diff --git a/src/lime/_internal/backend/html5/HTML5Window.hx b/src/lime/_internal/backend/html5/HTML5Window.hx index 850b13b06..376216bad 100644 --- a/src/lime/_internal/backend/html5/HTML5Window.hx +++ b/src/lime/_internal/backend/html5/HTML5Window.hx @@ -419,7 +419,11 @@ class HTML5Window private function handleCutOrCopyEvent(event:ClipboardEvent):Void { - event.clipboardData.setData("text/plain", Clipboard.text); + var text = Clipboard.text; + if (text == null) { + text = ""; + } + event.clipboardData.setData("text/plain", text); if (event.cancelable) event.preventDefault(); } diff --git a/src/lime/tools/ApplicationData.hx b/src/lime/tools/ApplicationData.hx index bf5876f89..301917209 100644 --- a/src/lime/tools/ApplicationData.hx +++ b/src/lime/tools/ApplicationData.hx @@ -1,7 +1,7 @@ package lime.tools; -typedef ApplicationData = -{ +@:forward +abstract ApplicationData({ @:optional var file:String; @:optional var init:String; @:optional var main:String; @@ -9,4 +9,16 @@ typedef ApplicationData = @:optional var preloader:String; @:optional var swfVersion:Float; @:optional var url:String; +}) from Dynamic +{ + @:noCompletion + public static var expectedFields:ApplicationData = { + file: "", + init: "", + main: "", + path: "", + preloader: "", + swfVersion: 0.0, + url: "" + }; } diff --git a/src/lime/tools/MetaData.hx b/src/lime/tools/MetaData.hx index 1849064f0..2e859905a 100644 --- a/src/lime/tools/MetaData.hx +++ b/src/lime/tools/MetaData.hx @@ -1,7 +1,7 @@ package lime.tools; -typedef MetaData = -{ +@:forward +abstract MetaData({ @:optional var buildNumber:String; @:optional var company:String; @:optional var companyId:String; @@ -10,4 +10,17 @@ typedef MetaData = @:optional var packageName:String; @:optional var title:String; @:optional var version:String; +}) from Dynamic +{ + @:noCompletion + public static var expectedFields:MetaData = { + buildNumber: "", + company: "", + companyId: "", + companyUrl: "", + description: "", + packageName: "", + title: "", + version: "" + }; } diff --git a/src/lime/tools/ProjectXMLParser.hx b/src/lime/tools/ProjectXMLParser.hx index cafeb9457..e71d87c73 100644 --- a/src/lime/tools/ProjectXMLParser.hx +++ b/src/lime/tools/ProjectXMLParser.hx @@ -7,9 +7,6 @@ import lime.tools.Asset; import lime.tools.AssetType; import lime.tools.Dependency; import lime.tools.HXProject; -import lime.tools._types.ApplicationDataType; -import lime.tools._types.MetaDataType; -import lime.tools._types.WindowDataType; #if lime import lime.utils.AssetManifest; #end @@ -442,11 +439,11 @@ class ProjectXMLParser extends HXProject name = "packageName"; } - if (Reflect.hasField(ApplicationDataType.fields, name)) + if (Reflect.hasField(ApplicationData.expectedFields, name)) { Reflect.setField(app, name, value); } - else if (Reflect.hasField(MetaDataType.fields, name)) + else if (Reflect.hasField(MetaData.expectedFields, name)) { Reflect.setField(meta, name, value); } @@ -859,7 +856,7 @@ class ProjectXMLParser extends HXProject name = "packageName"; } - if (Reflect.hasField(MetaDataType.fields, name)) + if (Reflect.hasField(MetaData.expectedFields, name)) { Reflect.setField(meta, name, value); } @@ -2009,11 +2006,11 @@ class ProjectXMLParser extends HXProject Reflect.setField(windows[id], "colorDepth", Std.parseInt(value)); default: - if (Reflect.hasField(WindowDataType.fields, name)) + if (Reflect.hasField(WindowData.expectedFields, name)) { Reflect.setField(windows[id], name, value == "true"); } - else if (Reflect.hasField(WindowDataType.fields, formatAttributeName(name))) + else if (Reflect.hasField(WindowData.expectedFields, formatAttributeName(name))) { Reflect.setField(windows[id], formatAttributeName(name), value == "true"); } diff --git a/src/lime/tools/WindowData.hx b/src/lime/tools/WindowData.hx index c6141bafb..d861cd23b 100644 --- a/src/lime/tools/WindowData.hx +++ b/src/lime/tools/WindowData.hx @@ -1,7 +1,7 @@ package lime.tools; -typedef WindowData = -{ +@:forward +abstract WindowData({ @:optional var width:Int; @:optional var height:Int; @:optional var x:Float; @@ -31,4 +31,38 @@ typedef WindowData = @:optional var minimized:Bool; @:optional var maximized:Bool; @:optional var hidden:Bool; +}) from Dynamic +{ + @:noCompletion + public static var expectedFields:WindowData = { + width: 0, + height: 0, + x: 0.0, + y: 0.0, + background: 0, + parameters: "", + fps: 0, + hardware: false, + display: 0, + resizable: false, + borderless: false, + vsync: false, + fullscreen: false, + allowHighDPI: false, + alwaysOnTop: false, + antialiasing: 0, + orientation: Orientation.AUTO, + allowShaders: false, + requireShaders: false, + depthBuffer: false, + stencilBuffer: false, + title: "", + #if (js && html5) + element: null, + #end + colorDepth: 0, + minimized: false, + maximized: false, + hidden: false + }; } diff --git a/src/lime/tools/_types/ApplicationDataType.hx b/src/lime/tools/_types/ApplicationDataType.hx deleted file mode 100644 index 5f6123cb3..000000000 --- a/src/lime/tools/_types/ApplicationDataType.hx +++ /dev/null @@ -1,17 +0,0 @@ -package lime.tools._types; - -import lime.tools.ApplicationData; - -class ApplicationDataType -{ - public static var fields:ApplicationData = - { - file: "", - init: "", - main: "", - path: "", - preloader: "", - swfVersion: 0.0, - url: "" - } -} diff --git a/src/lime/tools/_types/MetaDataType.hx b/src/lime/tools/_types/MetaDataType.hx deleted file mode 100644 index d96214039..000000000 --- a/src/lime/tools/_types/MetaDataType.hx +++ /dev/null @@ -1,18 +0,0 @@ -package lime.tools._types; - -import lime.tools.MetaData; - -class MetaDataType -{ - public static var fields:MetaData = - { - buildNumber: "", - company: "", - companyId: "", - companyUrl: "", - description: "", - packageName: "", - title: "", - version: "" - } -} diff --git a/src/lime/tools/_types/WindowDataType.hx b/src/lime/tools/_types/WindowDataType.hx deleted file mode 100644 index 7745382e4..000000000 --- a/src/lime/tools/_types/WindowDataType.hx +++ /dev/null @@ -1,39 +0,0 @@ -package lime.tools._types; - -import lime.tools.WindowData; - -class WindowDataType -{ - public static var fields:WindowData = - { - width: 0, - height: 0, - x: 0.0, - y: 0.0, - background: 0, - parameters: "", - fps: 0, - hardware: false, - display: 0, - resizable: false, - borderless: false, - vsync: false, - fullscreen: false, - allowHighDPI: false, - alwaysOnTop: false, - antialiasing: 0, - orientation: Orientation.AUTO, - allowShaders: false, - requireShaders: false, - depthBuffer: false, - stencilBuffer: false, - title: "", - #if (js && html5) - element: null, - #end - colorDepth: 0, - minimized: false, - maximized: false, - hidden: false - } -} \ No newline at end of file diff --git a/tools/CommandLineTools.hx b/tools/CommandLineTools.hx index cf897ad80..8f693435a 100644 --- a/tools/CommandLineTools.hx +++ b/tools/CommandLineTools.hx @@ -10,9 +10,6 @@ import hxp.*; import lime.system.CFFI; import lime.tools.HXProject; import lime.tools.*; -import lime.tools._types.ApplicationDataType; -import lime.tools._types.MetaDataType; -import lime.tools._types.WindowDataType; import sys.io.File; import sys.io.Process; import sys.FileSystem; @@ -1863,9 +1860,9 @@ class CommandLineTools var fieldValue = Reflect.field(project, field); var typeValue:Dynamic = switch (field) { - case "app": ApplicationDataType.fields; - case "meta": MetaDataType.fields; - case "window": WindowDataType.fields; + case "app": ApplicationData.expectedFields; + case "meta": MetaData.expectedFields; + case "window": WindowData.expectedFields; default: fieldValue; }; @@ -2133,9 +2130,9 @@ class CommandLineTools var fieldReference = Reflect.field(overrides, fieldName); var typeValue:Dynamic = switch (fieldName) { - case "app": ApplicationDataType.fields; - case "meta": MetaDataType.fields; - case "window": WindowDataType.fields; + case "app": ApplicationData.expectedFields; + case "meta": MetaData.expectedFields; + case "window": WindowData.expectedFields; default: fieldReference; };