diff --git a/scene/gui/tab_bar.cpp b/scene/gui/tab_bar.cpp index 4a1eede7f19..f9aca999695 100644 --- a/scene/gui/tab_bar.cpp +++ b/scene/gui/tab_bar.cpp @@ -1481,8 +1481,8 @@ int TabBar::get_tab_width(int p_idx) const { style = theme_cache.tab_disabled_style; } else if (current == p_idx) { style = theme_cache.tab_selected_style; - // Use the unselected style's width if the hovered one is shorter, to avoid an infinite loop when switching tabs with the mouse. - } else if (hover == p_idx && theme_cache.tab_hovered_style->get_minimum_size().width >= theme_cache.tab_unselected_style->get_minimum_size().width) { + // Always pick the widest style between hovered and unselected, to avoid an infinite loop when switching tabs with the mouse. + } else if (theme_cache.tab_hovered_style->get_minimum_size().width > theme_cache.tab_unselected_style->get_minimum_size().width) { style = theme_cache.tab_hovered_style; } else { style = theme_cache.tab_unselected_style;