Skip to content

Commit

Permalink
fix(rcore/android): Allow main() to return it its caller on configura…
Browse files Browse the repository at this point in the history
…tion changes. (raysan5#4288)
  • Loading branch information
IllusionMan1212 authored Aug 25, 2024
1 parent 91a9888 commit 8ea5db3
Showing 1 changed file with 11 additions and 4 deletions.
15 changes: 11 additions & 4 deletions src/platforms/rcore_android.c
Original file line number Diff line number Diff line change
Expand Up @@ -694,11 +694,12 @@ void PollInputEvents(void)
// Process this event
if (platform.source != NULL) platform.source->process(platform.app, platform.source);

// NOTE: Never close window, native activity is controlled by the system!
// NOTE: Allow closing the window in case a configuration change happened.
// The android_main function should be allowed to return to its caller in order for the
// Android OS to relaunch the activity.
if (platform.app->destroyRequested != 0)
{
//CORE.Window.shouldClose = true;
//ANativeActivity_finish(platform.app->activity);
CORE.Window.shouldClose = true;
}
}
}
Expand Down Expand Up @@ -781,7 +782,7 @@ int InitPlatform(void)
// Process this event
if (platform.source != NULL) platform.source->process(platform.app, platform.source);

// NOTE: Never close window, native activity is controlled by the system!
// NOTE: It's highly likely destroyRequested will never be non-zero at the start of the activity lifecycle.
//if (platform.app->destroyRequested != 0) CORE.Window.shouldClose = true;
}
}
Expand Down Expand Up @@ -812,6 +813,12 @@ void ClosePlatform(void)
eglTerminate(platform.device);
platform.device = EGL_NO_DISPLAY;
}

// NOTE: Reset global state in case the activity is being relaunched.
if (platform.app->destroyRequested != 0) {
CORE = (CoreData){0};
platform = (PlatformData){0};
}
}

// Initialize display device and framebuffer
Expand Down

0 comments on commit 8ea5db3

Please sign in to comment.