|
@@ -2195,6 +2195,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();
|
|
|
}
|