From 8dd915507e2e59bea0b4b17fee5c0826861ffc5d Mon Sep 17 00:00:00 2001 From: Sylvain Becker Date: Wed, 9 Jan 2019 23:19:26 +0100 Subject: [PATCH] Android: prevent a dummy error message sending SDL_DISPLAYEVENT_ORIENTATION In the usual case, first call to onNativeOrientationChanged() is done before SDL has been initialised and would just set an error message "Video subsystem has not been initialized" without sending the event. --- .../app/src/main/java/org/libsdl/app/SDLActivity.java | 1 + src/core/android/SDL_android.c | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java index 09cafc55790b6..fc6c5ad233d7b 100644 --- a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java +++ b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java @@ -260,6 +260,7 @@ public void onClick(DialogInterface dialog,int id) { // Get our current screen orientation and pass it down. mCurrentOrientation = SDLActivity.getCurrentOrientation(); + // FIXME: with only one activity, SDL Thread is not yet started and this onNativeOrientationChanged() is ignored SDLActivity.onNativeOrientationChanged(mCurrentOrientation); setContentView(mLayout); diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 8613d45655d2c..96bab018c3ba3 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -583,8 +583,11 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeOrientationChanged)( JNIEnv *env, jclass jcls, jint orientation) { - SDL_VideoDisplay *display = SDL_GetDisplay(0); - SDL_SendDisplayEvent(display, SDL_DISPLAYEVENT_ORIENTATION, orientation); + SDL_VideoDevice *_this = SDL_GetVideoDevice(); + if (_this) { + SDL_VideoDisplay *display = SDL_GetDisplay(0); + SDL_SendDisplayEvent(display, SDL_DISPLAYEVENT_ORIENTATION, orientation); + } } /* Paddown */