Dismiss currently visible or upcoming tooltips when pressing Escape

This is standard UI behavior in most applications out there.
This commit is contained in:
Hugo Locurcio 2023-08-07 10:52:28 +02:00
parent faaf27f284
commit 6307b0be3c
No known key found for this signature in database
GPG key ID: 39E8F8BE30B0A49C

View file

@ -2184,6 +2184,18 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
return;
}
if (p_event->is_action_pressed("ui_cancel")) {
// Cancel tooltip timer or hide tooltip when pressing Escape (this is standard behavior in most applications).
_gui_cancel_tooltip();
if (gui.tooltip_popup) {
// If a tooltip was hidden, prevent other actions associated with `ui_cancel` from occurring.
// For instance, this prevents the node from being deselected when pressing Escape
// to hide a documentation tooltip in the inspector.
set_input_as_handled();
return;
}
}
if (gui.key_focus && !gui.key_focus->is_visible_in_tree()) {
gui.key_focus->release_focus();
}