Skip to content

Commit

Permalink
Fix tooltip appearing in old place, on movement
Browse files Browse the repository at this point in the history
Fixes tooltip appearing in editor on old position of mouse.
Fixes tooltip appearing even if mouse is in steady motion (now accepts max 5 px movement).
  • Loading branch information
aXu-AP committed Oct 29, 2024
1 parent 44fa552 commit 538c18c
Showing 1 changed file with 12 additions and 14 deletions.
26 changes: 12 additions & 14 deletions scene/main/viewport.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1931,21 +1931,19 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
}
}

// If the tooltip timer isn't running, start it.
// Otherwise, only reset the timer if the mouse has moved more than 5 pixels.
if (!is_tooltip_shown && over->can_process() &&
(gui.tooltip_timer.is_null() ||
Math::is_zero_approx(gui.tooltip_timer->get_time_left()) ||
mm->get_relative().length() > 5.0)) {
if (gui.tooltip_timer.is_valid()) {
gui.tooltip_timer->release_connections();
gui.tooltip_timer = Ref<SceneTreeTimer>();
// Reset the timer if the mouse has moved more than 5 pixels or has entered a new control.
if (!is_tooltip_shown && over->can_process()) {
Vector2 new_tooltip_pos = over->get_screen_transform().xform(pos);
if (gui.tooltip_pos.distance_squared_to(new_tooltip_pos) > 25 || over != gui.tooltip_control) {
if (gui.tooltip_timer.is_valid()) {
gui.tooltip_timer->release_connections();
}
gui.tooltip_control = over;
gui.tooltip_pos = new_tooltip_pos;
gui.tooltip_timer = get_tree()->create_timer(gui.tooltip_delay);
gui.tooltip_timer->set_ignore_time_scale(true);
gui.tooltip_timer->connect("timeout", callable_mp(this, &Viewport::_gui_show_tooltip));
}
gui.tooltip_control = over;
gui.tooltip_pos = over->get_screen_transform().xform(pos);
gui.tooltip_timer = get_tree()->create_timer(gui.tooltip_delay);
gui.tooltip_timer->set_ignore_time_scale(true);
gui.tooltip_timer->connect("timeout", callable_mp(this, &Viewport::_gui_show_tooltip));
}
}

Expand Down

0 comments on commit 538c18c

Please sign in to comment.