ComboTabBar: Fix edge case in tabAt

Right corner of pinned tabbar would incorrectly return tabs from main tabbar.
Also make it work on close button.
remotes/origin/Falkon/3.0
David Rosca 8 years ago
parent 8100020b41
commit 4fb73f3840
  1. 17
      src/lib/tabwidget/combotabbar.cpp

@ -221,18 +221,19 @@ QRect ComboTabBar::tabRect(int index) const
int ComboTabBar::tabAt(const QPoint &pos) const
{
QWidget* w = QApplication::widgetAt(mapToGlobal(pos));
if (!qobject_cast<TabBarHelper*>(w) && !qobject_cast<TabIcon*>(w))
if (!qobject_cast<TabBarHelper*>(w) && !qobject_cast<TabIcon*>(w) && !qobject_cast<CloseButton*>(w))
return -1;
int index = m_pinnedTabBarWidget->tabAt(m_pinnedTabBarWidget->mapFromParent(pos));
if (index != -1)
if (m_pinnedTabBarWidget->geometry().contains(pos)) {
return m_pinnedTabBarWidget->tabAt(m_pinnedTabBarWidget->mapFromParent(pos));
} else if (m_mainTabBarWidget->geometry().contains(pos)) {
int index = m_mainTabBarWidget->tabAt(m_mainTabBarWidget->mapFromParent(pos));
if (index != -1)
index += pinnedTabsCount();
return index;
}
index = m_mainTabBarWidget->tabAt(m_mainTabBarWidget->mapFromParent(pos));
if (index != -1)
index += pinnedTabsCount();
return index;
return -1;
}
bool ComboTabBar::emptyArea(const QPoint &pos) const

Loading…
Cancel
Save