aboutsummaryrefslogtreecommitdiff
path: root/main.gd
diff options
context:
space:
mode:
authordam <dam@gudinoff>2022-04-04 10:36:26 +0000
committerdam <dam@gudinoff>2022-04-04 10:36:26 +0000
commit0093ad0682e493e5f8115566f71c8cb8a2d7c0d9 (patch)
treebe31c34e5713427fa924e150fa1ceba2caeeb84c /main.gd
parentf40df1987a35adbc234a1b04b018d92d420b1e92 (diff)
downloadsurgery-log-0093ad0682e493e5f8115566f71c8cb8a2d7c0d9.tar.zst
surgery-log-0093ad0682e493e5f8115566f71c8cb8a2d7c0d9.zip
Implement back button logic.
Diffstat (limited to 'main.gd')
-rw-r--r--main.gd17
1 files changed, 17 insertions, 0 deletions
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()
+
+