diff --git a/include.xml b/include.xml
index a07bd5234..a6eca10c1 100644
--- a/include.xml
+++ b/include.xml
@@ -29,7 +29,7 @@
-
+
diff --git a/lime/tools/platforms/IOSPlatform.hx b/lime/tools/platforms/IOSPlatform.hx
index e494a8327..251acb261 100644
--- a/lime/tools/platforms/IOSPlatform.hx
+++ b/lime/tools/platforms/IOSPlatform.hx
@@ -568,6 +568,12 @@ class IOSPlatform extends PlatformTarget {
}
+ if (project.targetFlags.exists ("xcode") && PlatformHelper.hostPlatform == Platform.MAC && command == "update") {
+
+ ProcessHelper.runCommand ("", "open", [ targetDirectory + "/" + project.app.file + ".xcodeproj" ] );
+
+ }
+
}
diff --git a/project/Build.xml b/project/Build.xml
index 8617be66a..a7e5659aa 100644
--- a/project/Build.xml
+++ b/project/Build.xml
@@ -141,6 +141,7 @@
+
@@ -156,7 +157,7 @@
-
+
diff --git a/project/src/backend/sdl/SDLApplication.cpp b/project/src/backend/sdl/SDLApplication.cpp
index 1d69d3a17..3cdf803f8 100644
--- a/project/src/backend/sdl/SDLApplication.cpp
+++ b/project/src/backend/sdl/SDLApplication.cpp
@@ -413,7 +413,7 @@ namespace lime {
SDL_Event event;
event.type = -1;
- #if (!defined (EMSCRIPTEN) && !defined (IPHONE))
+ #if (!defined (IPHONE) && !defined (EMSCRIPTEN))
if (active && (firstTime || SDL_WaitEvent (&event))) {
@@ -424,15 +424,37 @@ namespace lime {
if (!active)
return active;
- if (SDL_PollEvent (&event)) {
+ #endif
+
+ while (SDL_PollEvent (&event)) {
HandleEvent (&event);
event.type = -1;
+ if (!active)
+ return active;
}
currentUpdate = SDL_GetTicks ();
+ #if defined (IPHONE)
+
+ if (currentUpdate >= nextUpdate) {
+
+ event.type = SDL_USEREVENT;
+ HandleEvent (&event);
+ event.type = -1;
+
+ }
+
+ #elif defined (EMSCRIPTEN)
+
+ event.type = SDL_USEREVENT;
+ HandleEvent (&event);
+ event.type = -1;
+
+ #else
+
if (currentUpdate >= nextUpdate) {
SDL_RemoveTimer (timerID);
@@ -447,19 +469,6 @@ namespace lime {
}
- #else
-
- while (SDL_PollEvent (&event)) {
-
- HandleEvent (&event);
- event.type = -1;
-
- }
-
- event.type = SDL_USEREVENT;
- HandleEvent (&event);
- event.type = -1;
-
#endif
return active;
@@ -476,7 +485,7 @@ namespace lime {
void SDLApplication::UpdateFrame (void*) {
- currentApplication->Update ();
+ UpdateFrame ();
}
diff --git a/templates/emscripten/cpp/Main.cpp b/templates/emscripten/cpp/Main.cpp
index ac42910c2..1ba99afcb 100644
--- a/templates/emscripten/cpp/Main.cpp
+++ b/templates/emscripten/cpp/Main.cpp
@@ -12,33 +12,29 @@ extern "C" void hxcpp_set_top_of_stack ();
extern "C" int zlib_register_prims ();
extern "C" int lime_openal_register_prims ();
-::foreach ndlls::::if (registerStatics)::extern "C" int ::name::_register_prims();::end::
+::foreach ndlls::::if (registerStatics)::extern "C" int ::name::_register_prims ();::end::
::end::
-extern "C" int main(int argc, char *argv[]) {
+extern "C" int main (int argc, char *argv[]) {
- //printf("Starting ...\n" );
hxcpp_set_top_of_stack ();
zlib_register_prims ();
lime_openal_register_prims ();
- ::foreach ndlls::::if (registerStatics)::::name::_register_prims();::end::
+ ::foreach ndlls::::if (registerStatics)::::name::_register_prims ();::end::
::end::
- //printf("Running\n");
-
const char *err = NULL;
err = hxRunLibrary ();
if (err) {
- printf(" Error %s\n", err );
+ printf (" Error %s\n", err);
return -1;
}
- //printf("Done!\n");
return 0;
}
\ No newline at end of file
diff --git a/templates/iphone/PROJ/Classes/Main.mm b/templates/iphone/PROJ/Classes/Main.mm
index c6ab66805..726b98d68 100644
--- a/templates/iphone/PROJ/Classes/Main.mm
+++ b/templates/iphone/PROJ/Classes/Main.mm
@@ -7,35 +7,36 @@
#include
-extern "C" const char *hxRunLibrary();
-extern "C" void hxcpp_set_top_of_stack();
-
-::foreach ndlls::
- ::if (registerStatics)::
- extern "C" int ::name::_register_prims();
- ::end::
+extern "C" const char *hxRunLibrary ();
+extern "C" void hxcpp_set_top_of_stack ();
+
+extern "C" int zlib_register_prims ();
+extern "C" int lime_openal_register_prims ();
+::foreach ndlls::::if (registerStatics)::extern "C" int ::name::_register_prims ();::end::
::end::
-
-extern "C" int main(int argc, char *argv[])
-{
- //printf("Starting ...\n" );
- hxcpp_set_top_of_stack();
- ::foreach ndlls::
- ::if (registerStatics)::
- ::name::_register_prims();
- ::end::
- ::end::
-
- //printf("Running\n");
+extern "C" int main (int argc, char *argv[]) {
+
+ printf("Top of stack\n");
+
+ hxcpp_set_top_of_stack ();
+ printf("Top of stack2\n");
+ zlib_register_prims ();
+ lime_openal_register_prims ();
+ ::foreach ndlls::::if (registerStatics)::::name::_register_prims ();::end::
+ ::end::
+ printf("prims\n");
const char *err = NULL;
- err = hxRunLibrary();
+ err = hxRunLibrary ();
+
if (err) {
- printf(" Error %s\n", err );
+
+ printf (" Error %s\n", err);
return -1;
+
}
-
- //printf("Done!\n");
+
return 0;
-}
+
+}
\ No newline at end of file