Event System
While Godot ships with it's own event system, we have implemented our own event system to make it more similar to the event system in Browsers and to streamline event handling in the app.
There are two types of base events, Events which get directly emitted by the EventSystem and BubbleEvents which first walk through the scene tree starting at the target node until the root node is reached and then get emitted by the EventSystem. This can be seen in the diagram below.
Full reference can be found in the Event System documentation.
Focus handling
By default, every Node that has the ui_focus
group is able to receive focus. When a node receives focus, the _on_focus_in(event: EventFocus) method is called. When a node loses focus, the _on_focus_out(event: EventFocus) method is called.
The ui_focus_skip
group can be added to a node to skip focus when clicking on it. The ui_focus_stop
group prevents focus entirely on itself and its children. Useful for the Virtual Keyboard.