Godot
Window
does not lose focus
For some reason, Window
s do not
always lose focus when other windows are focused.
There isn't a function to explicitly drop focus, so
to work around this problem you can focus of all of
the other windows before grabbing the focus of the
window you want to focus. For example: 1
func _on_notes_button_pressed() -> void:
= not notes_ui.visible
notes_ui.visible if notes_ui.visible:
focus_window(notes_ui)
func _on_map_button_pressed() -> void:
= not map_ui.visible
map_ui.visible if map_ui.visible:
focus_window(map_ui)
func focus_window(window_to_focus: Window) -> void:
# For some reason, focus isn't dropped when we focus the new window and
# there's no function to explicitly drop focus. So, to work around this
# we focus the window we want to unfocus right before we focus the
# window we want to focus
for window: Window in get_viewport().get_embedded_subwindows():
if window != window_to_focus:
grab_focus()
window.
grab_focus() window_to_focus.