From 0093ad0682e493e5f8115566f71c8cb8a2d7c0d9 Mon Sep 17 00:00:00 2001 From: dam Date: Mon, 4 Apr 2022 10:36:26 +0000 Subject: Implement back button logic. --- main.gd | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'main.gd') diff --git a/main.gd b/main.gd index 5612e01..ec449df 100644 --- a/main.gd +++ b/main.gd @@ -2,7 +2,10 @@ extends Control var power_throttle_timeout: float +onready var popup := get_node("/root/main/popup") as ModalPopup onready var file_picker := get_node("/root/main/file_picker") as FileDialog +onready var stage := get_node("/root/main/stage") as Stage +onready var database := get_node("/root/main/database") as Database onready var controls_sensible_to_keyboard := [ self, file_picker, @@ -46,3 +49,17 @@ func _unhandled_input(event: InputEvent): power_throttle_timeout = 3.5 +func _notification(what: int): + if what == MainLoop.NOTIFICATION_WM_GO_BACK_REQUEST: + if popup.visible: + popup.call_deferred("dismiss") + elif file_picker.visible: + file_picker.hide() + elif stage.visible: + stage.discard_action() + elif database.selected_idx != -1: + database.clear_selection() + else: + get_tree().quit() + + -- cgit v1.2.3