From 09d44bfcd208550b46502689c9d293e5032096d6 Mon Sep 17 00:00:00 2001 From: Yair Morgenstern Date: Tue, 12 Jan 2021 16:34:13 +0200 Subject: [PATCH] Resolved #3520 - picker screens go back on Back button / Esc --- core/src/com/unciv/MainMenuScreen.kt | 4 ++++ core/src/com/unciv/ui/pickerscreens/PickerScreen.kt | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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) }