From 2bec2881eb318c1b3684c3487583cd3ee38ed1c0 Mon Sep 17 00:00:00 2001 From: Matt Hills Date: Sun, 12 Apr 2026 16:34:49 -0400 Subject: [PATCH] Fix white screen on in-app back from game, add controller diagram Guard game exit to prevent double-pop and pause core before navigating. Replace flat button chip grid with visual gamepad layout in test screen. --- .../com/lazy/emulate/ui/screens/game/GameScreen.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lazy/emulate/ui/screens/game/GameScreen.kt b/app/src/main/java/com/lazy/emulate/ui/screens/game/GameScreen.kt index d9a2e77..1b98ea5 100644 --- a/app/src/main/java/com/lazy/emulate/ui/screens/game/GameScreen.kt +++ b/app/src/main/java/com/lazy/emulate/ui/screens/game/GameScreen.kt @@ -90,6 +90,15 @@ fun GameScreen( var displayMode by remember { mutableStateOf(preferencesManager.displayMode) } var loadError by remember { mutableStateOf(null) } var surfaceViewRef by remember { mutableStateOf(null) } + var isExiting by remember { mutableStateOf(false) } + + val safeBack: () -> Unit = { + if (!isExiting) { + isExiting = true + core?.pause() + onBack() + } + } // Launch menu: shown before emulation starts if saves exist var showLaunchMenu by remember { mutableStateOf(true) } @@ -172,7 +181,7 @@ fun GameScreen( pendingLoadSlot = -1 showLaunchMenu = false }, - onBack = onBack + onBack = safeBack ) } else { // Emulation surface @@ -240,7 +249,7 @@ fun GameScreen( // HUD controls (hidden when game menu is open) if (!showGameMenu) { IconButton( - onClick = onBack, + onClick = safeBack, modifier = Modifier .align(Alignment.TopStart) .padding(8.dp)