diff --git a/scene/gui/tabs.cpp b/scene/gui/tabs.cpp index e1fd6099bea..7304fe1e6dc 100644 --- a/scene/gui/tabs.cpp +++ b/scene/gui/tabs.cpp @@ -89,7 +89,6 @@ void Tabs::_gui_input(const Ref &p_event) { if (mm.is_valid()) { Point2 pos = mm->get_position(); - highlight_arrow = -1; if (buttons_visible) { Ref incr = get_icon("increment"); Ref decr = get_icon("decrement"); @@ -97,14 +96,22 @@ void Tabs::_gui_input(const Ref &p_event) { int limit = get_size().width - incr->get_width() - decr->get_width(); if (pos.x > limit + decr->get_width()) { - highlight_arrow = 1; + if (highlight_arrow != 1) { + highlight_arrow = 1; + update(); + } } else if (pos.x > limit) { - highlight_arrow = 0; + if (highlight_arrow != 0) { + highlight_arrow = 0; + update(); + } + } else if (highlight_arrow != -1) { + highlight_arrow = -1; + update(); } } _update_hover(); - update(); return; }