diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 9d2b0cfccfd..cf84f8f4251 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -2009,11 +2009,17 @@ void Viewport::_gui_input_event(InputEvent p_event) { bool is_tooltip_shown = false; - if (can_tooltip && gui.tooltip_popup) { - String tooltip = over->get_tooltip(gui.tooltip->get_global_transform().xform_inv(mpos)); + if (gui.tooltip_popup) { + if (can_tooltip) { + String tooltip = over->get_tooltip(gui.tooltip->get_global_transform().xform_inv(mpos)); - if (gui.tooltip_popup && tooltip == gui.tooltip_label->get_text()) - is_tooltip_shown = true; + if (tooltip.length() == 0) + _gui_cancel_tooltip(); + else if (tooltip == gui.tooltip_label->get_text()) + is_tooltip_shown = true; + } + else + _gui_cancel_tooltip(); } if (can_tooltip && !is_tooltip_shown) {