diff options
| -rw-r--r-- | client/global.gd | 4 | ||||
| -rw-r--r-- | client/menu/menu_manager.gd | 15 | 
2 files changed, 19 insertions, 0 deletions
| diff --git a/client/global.gd b/client/global.gd index b9f35b6b..7c547d64 100644 --- a/client/global.gd +++ b/client/global.gd @@ -108,6 +108,8 @@ var settings: Dictionary  var server_url = ""  var error_message = "" +var focus_auto_changed := false +  var fade_next := false # Set true when transitioning from another scene (fade in requried)  func _init(): @@ -143,6 +145,8 @@ func on_vulkan() -> bool:  	return ProjectSettings.get_setting("rendering/rendering_device/driver") == "vulkan"  func focus_first_button(node: Node) -> bool: +	focus_auto_changed = true +	  	if node is Button:  		node.grab_focus()  		print("Node %s (%s) was selected for focus" % [node.name, node]) diff --git a/client/menu/menu_manager.gd b/client/menu/menu_manager.gd index c15f181f..58f35885 100644 --- a/client/menu/menu_manager.gd +++ b/client/menu/menu_manager.gd @@ -15,6 +15,7 @@ var menu_stack = ["main"]  func _ready(): +	get_viewport().gui_focus_changed.connect(play_hover_maybe)  	Global.focus_first_button(menus[menu_stack.back()])  	for m in menus.values(): @@ -56,8 +57,22 @@ func show_menu(menu_name: String):  func connect_button_sounds(node: Node):  	if node is Button:  		node.pressed.connect(play_click) +	if node is Button or node is LineEdit or node is Slider: +		node.mouse_entered.connect(play_hover)  	for c in node.get_children():  		connect_button_sounds(c)  func play_click():  	click_sound.play() + +func play_hover(): +	hover_sound.play() + +func play_hover_maybe(element): +	if Global.focus_auto_changed: +		Global.focus_auto_changed = false +		return +	if element is Button: +		if element.is_hovered(): +			return +	play_hover() | 
