diff --git a/core/src/com/unciv/MainMenuScreen.kt b/core/src/com/unciv/MainMenuScreen.kt index ede6b9b889..8bae55c111 100644 --- a/core/src/com/unciv/MainMenuScreen.kt +++ b/core/src/com/unciv/MainMenuScreen.kt @@ -128,6 +128,10 @@ class MainMenuScreen: CameraStageBaseScreen() { stage.addActor(scroll) onBackButtonClicked { + if(hasOpenPopups()) { + closeAllPopups() + return@onBackButtonClicked + } val promptWindow = Popup(this) promptWindow.addGoodSizedLabel("Do you want to exit the game?".tr()) promptWindow.row() diff --git a/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt b/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt index 98b64db99d..90062f54ac 100644 --- a/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt +++ b/core/src/com/unciv/ui/pickerscreens/PickerScreen.kt @@ -46,11 +46,13 @@ open class PickerScreen : CameraStageBaseScreen() { } fun setDefaultCloseAction(previousScreen: CameraStageBaseScreen?=null) { - closeButton.onClick { + val closeAction = { if (previousScreen != null) game.setScreen(previousScreen) else game.setWorldScreen() dispose() } + closeButton.onClick(closeAction) + onBackButtonClicked(closeAction) } fun setRightSideButtonEnabled(bool: Boolean) { @@ -59,7 +61,7 @@ open class PickerScreen : CameraStageBaseScreen() { } protected fun pick(rightButtonText: String) { - if(UncivGame.Current.worldScreen.isPlayersTurn) rightSideButton.enable() + if (UncivGame.Current.worldScreen.isPlayersTurn) rightSideButton.enable() rightSideButton.setText(rightButtonText) }