From 6aa9b1c9dc803755dcd9f9d2093cc0c2d3786106 Mon Sep 17 00:00:00 2001 From: SutandoTsukai181 <52977072+SutandoTsukai181@users.noreply.github.com> Date: Wed, 10 Jun 2020 13:53:18 +0300 Subject: [PATCH] Update framebuffer layout when closing the settings Fixes an issue where the default layout gets applied when closing the settings, which is noticable if you swap screens before changing the layout. --- .../citra_emu/features/settings/ui/SettingsActivity.java | 6 ++++++ src/android/app/src/main/jni/native.cpp | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java index 1ce897119..8a078d0eb 100644 --- a/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java +++ b/src/android/app/src/main/java/org/citra/citra_emu/features/settings/ui/SettingsActivity.java @@ -15,9 +15,11 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.FragmentTransaction; import androidx.localbroadcastmanager.content.LocalBroadcastManager; +import org.citra.citra_emu.NativeLibrary; import org.citra.citra_emu.R; import org.citra.citra_emu.utils.DirectoryInitialization; import org.citra.citra_emu.utils.DirectoryStateReceiver; +import org.citra.citra_emu.utils.EmulationMenuSettings; public final class SettingsActivity extends AppCompatActivity implements SettingsActivityView { private static final String ARG_MENU_TAG = "menu_tag"; @@ -88,6 +90,10 @@ public final class SettingsActivity extends AppCompatActivity implements Setting super.onStop(); mPresenter.onStop(isFinishing()); + + // Update framebuffer layout when closing the settings + NativeLibrary.NotifyOrientationChange(EmulationMenuSettings.getLandscapeScreenLayout(), + getWindowManager().getDefaultDisplay().getRotation()); } @Override diff --git a/src/android/app/src/main/jni/native.cpp b/src/android/app/src/main/jni/native.cpp index d5eb54aeb..80596450d 100644 --- a/src/android/app/src/main/jni/native.cpp +++ b/src/android/app/src/main/jni/native.cpp @@ -237,7 +237,9 @@ void Java_org_citra_citra_1emu_NativeLibrary_NotifyOrientationChange(JNIEnv* env jint layout_option, jint rotation) { Settings::values.layout_option = static_cast(layout_option); - VideoCore::g_renderer->UpdateCurrentFramebufferLayout(!(rotation % 2)); + if (VideoCore::g_renderer) { + VideoCore::g_renderer->UpdateCurrentFramebufferLayout(!(rotation % 2)); + } InputManager::screen_rotation = rotation; Camera::NDK::g_rotation = rotation; }