diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp index 403644f9a4c2fe7f0f5f7111e0c7873116b2ba2a..982662c6acd9e471a6657407024cab9c3f03ef04 100644 --- a/src/plugins/coreplugin/fancytabwidget.cpp +++ b/src/plugins/coreplugin/fancytabwidget.cpp @@ -103,18 +103,25 @@ void FancyTabBar::paintEvent(QPaintEvent *event) void FancyTabBar::mouseMoveEvent(QMouseEvent *e) { if (!m_hoverRect.contains(e->pos())) { + int newHover = -1; for (int i = 0; i < count(); ++i) { QRect area = tabRect(i); if (area.contains(e->pos())) { - m_hoverIndex = i; - QRect oldHoverRect = m_hoverRect; - m_hoverRect = area; - update(oldHoverRect); - m_hoverControl.stop(); - m_hoverControl.start(); + newHover = i; break; } } + + m_hoverControl.stop(); + m_hoverIndex = newHover; + update(m_hoverRect); + m_hoverRect = QRect(); + + if (m_hoverIndex >=0) { + QRect oldHoverRect = m_hoverRect; + m_hoverRect = tabRect(m_hoverIndex); + m_hoverControl.start(); + } } }