diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/global.gd | 2 | ||||
-rw-r--r-- | client/menu/menu.gd | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/client/global.gd b/client/global.gd index fdb4df28..4ea07a4f 100644 --- a/client/global.gd +++ b/client/global.gd @@ -60,8 +60,10 @@ func _init(): update_fullscreen() update_language() +var focused_node: Control func _ready(): get_viewport().gui_focus_changed.connect(Sound.play_hover_maybe) + get_viewport().gui_focus_changed.connect(func (node): focused_node = node) func _input(_event): if Input.is_action_just_pressed("fullscreen"): diff --git a/client/menu/menu.gd b/client/menu/menu.gd index 5e7ba34c..2c539bd9 100644 --- a/client/menu/menu.gd +++ b/client/menu/menu.gd @@ -34,6 +34,7 @@ func menu_anim_cover(state: bool): var popup: Menu = null func submenu(path: String, instant: bool = false): + var prev_focus = Global.focused_node if popup != null: return await menu_anim_cover(true) popup = load(path).instantiate() @@ -43,6 +44,7 @@ func submenu(path: String, instant: bool = false): await submenu_close print("Submenu closed ", path) await menu_anim_cover(false) + if prev_focus != null: prev_focus.grab_focus() func exit(): await self.menu_anim_exit() |