mirror of
				https://github.com/Ryujinx/SDL.git
				synced 2025-10-26 11:37:27 +00:00 
			
		
		
		
	Android: only send Quit event to SDLThread if it's not already terminated
And it avoids reporting errors using Android_Pause/ResumeSem that are NULL.
This commit is contained in:
		
							parent
							
								
									61d37de099
								
							
						
					
					
						commit
						dad8161103
					
				|  | @ -390,16 +390,18 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh | |||
|            return; | ||||
|         } | ||||
| 
 | ||||
|         // Send a quit message to the application | ||||
|         SDLActivity.mExitCalledFromJava = true; | ||||
|         SDLActivity.nativeQuit(); | ||||
| 
 | ||||
|         // Now wait for the SDL thread to quit | ||||
|         if (SDLActivity.mSDLThread != null) { | ||||
| 
 | ||||
|             // Send Quit event to "SDLThread" thread | ||||
|             SDLActivity.nativeSendQuit(); | ||||
| 
 | ||||
|             // Wait for "SDLThread" thread to end | ||||
|             try { | ||||
|                 SDLActivity.mSDLThread.join(); | ||||
|             } catch(Exception e) { | ||||
|                 Log.v(TAG, "Problem stopping thread: " + e); | ||||
|                 Log.v(TAG, "Problem stopping SDLThread: " + e); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|  | @ -724,7 +726,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh | |||
|     public static native int nativeSetupJNI(); | ||||
|     public static native int nativeRunMain(String library, String function, Object arguments); | ||||
|     public static native void nativeLowMemory(); | ||||
|     public static native void nativeQuit(); | ||||
|     public static native void nativeSendQuit(); | ||||
|     public static native void nativePause(); | ||||
|     public static native void nativeResume(); | ||||
|     public static native void onNativeDropFile(String filename); | ||||
|  |  | |||
|  | @ -122,7 +122,7 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeClipboardChanged)( | |||
| JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeLowMemory)( | ||||
|         JNIEnv *env, jclass cls); | ||||
| 
 | ||||
| JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeQuit)( | ||||
| JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeSendQuit)( | ||||
|         JNIEnv *env, jclass cls); | ||||
| 
 | ||||
| JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativePause)( | ||||
|  | @ -813,12 +813,12 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeLowMemory)( | |||
|     SDL_SendAppEvent(SDL_APP_LOWMEMORY); | ||||
| } | ||||
| 
 | ||||
| /* Quit */ | ||||
| JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeQuit)( | ||||
| /* Send Quit event to "SDLThread" thread */ | ||||
| JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(nativeSendQuit)( | ||||
|                                     JNIEnv *env, jclass cls) | ||||
| { | ||||
|     /* Discard previous events. The user should have handled state storage
 | ||||
|      * in SDL_APP_WILLENTERBACKGROUND. After nativeQuit() is called, no | ||||
|      * in SDL_APP_WILLENTERBACKGROUND. After nativeSendQuit() is called, no | ||||
|      * events other than SDL_QUIT and SDL_APP_TERMINATING should fire */ | ||||
|     SDL_FlushEvents(SDL_FIRSTEVENT, SDL_LASTEVENT); | ||||
|     /* Inject a SDL_QUIT event */ | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue