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.
This commit is contained in:
@@ -90,6 +90,15 @@ fun GameScreen(
|
|||||||
var displayMode by remember { mutableStateOf(preferencesManager.displayMode) }
|
var displayMode by remember { mutableStateOf(preferencesManager.displayMode) }
|
||||||
var loadError by remember { mutableStateOf<String?>(null) }
|
var loadError by remember { mutableStateOf<String?>(null) }
|
||||||
var surfaceViewRef by remember { mutableStateOf<SurfaceView?>(null) }
|
var surfaceViewRef by remember { mutableStateOf<SurfaceView?>(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
|
// Launch menu: shown before emulation starts if saves exist
|
||||||
var showLaunchMenu by remember { mutableStateOf(true) }
|
var showLaunchMenu by remember { mutableStateOf(true) }
|
||||||
@@ -172,7 +181,7 @@ fun GameScreen(
|
|||||||
pendingLoadSlot = -1
|
pendingLoadSlot = -1
|
||||||
showLaunchMenu = false
|
showLaunchMenu = false
|
||||||
},
|
},
|
||||||
onBack = onBack
|
onBack = safeBack
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
// Emulation surface
|
// Emulation surface
|
||||||
@@ -240,7 +249,7 @@ fun GameScreen(
|
|||||||
// HUD controls (hidden when game menu is open)
|
// HUD controls (hidden when game menu is open)
|
||||||
if (!showGameMenu) {
|
if (!showGameMenu) {
|
||||||
IconButton(
|
IconButton(
|
||||||
onClick = onBack,
|
onClick = safeBack,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.TopStart)
|
.align(Alignment.TopStart)
|
||||||
.padding(8.dp)
|
.padding(8.dp)
|
||||||
|
|||||||
Reference in New Issue
Block a user