From 035a0699e1559f33e533d9bbca03417159a00339 Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Mon, 28 May 2018 21:09:29 +0000 Subject: [PATCH] Try everything I can think of to get focus working. Grab click focus, make every single control focusable every way possible, track focus_exited for more insight. Nothing works. --- addons/accessibility/accessibility.gd | 5 ++++- addons/accessibility/accessible.gd | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/addons/accessibility/accessibility.gd b/addons/accessibility/accessibility.gd index 039eeee..52ac58f 100644 --- a/addons/accessibility/accessibility.gd +++ b/addons/accessibility/accessibility.gd @@ -5,16 +5,19 @@ var Accessible = preload("accessible.gd") func _augment_node(node): if node is Control: + node.set_focus_mode(Control.FOCUS_ALL) Accessible.new(node) func _set_initial_screen_focus(screen): + print("Screen ",screen) var focus var root = self while root.get_parent() != null: root = root.get_parent() if screen == "3D": - focus = root.find_node("LineEdit", true, false) + focus = root.find_node("ToolButton", true, false) print("Focus ",focus) + focus.grab_click_focus() focus.grab_focus() func _set_initial_scene_focus(scene): diff --git a/addons/accessibility/accessible.gd b/addons/accessibility/accessible.gd index 75d3a67..911013e 100644 --- a/addons/accessibility/accessible.gd +++ b/addons/accessibility/accessible.gd @@ -5,13 +5,18 @@ var node func _focused(): print("Focus entered.") +func _unfocused(): + print("Unfocused") + func _gui_input(): print("GUI input.") func _init(node): - print(node.get_path()) + # print(node.get_path()) self.node = node self.node.connect("focus_entered", self, "_focused") self.node.connect("mouse_entered", self, "_focused") + self.node.connect("focus_exited", self, "_unfocused") + self.node.connect("mouse_exited", self, "_unfocused") self.node.connect("gui_input", self, "_gui_input") self.node.connect("tree_exiting", self, "free")