-rw-r--r-- | libopie2/opieui/otabwidget.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/libopie2/opieui/otabwidget.cpp b/libopie2/opieui/otabwidget.cpp index ae396b9..8d7806c 100644 --- a/libopie2/opieui/otabwidget.cpp +++ b/libopie2/opieui/otabwidget.cpp @@ -385,12 +385,23 @@ void OTabWidget::selectTab( OTabInfo *tab ) // Set text label for newly selected tab m_tabBar->tab( tab->id() )->setText( tab->label() ); m_tabBar->setCurrentTab( tab->id() ); setUpLayout(); + + QSize t; + + t = m_tabBar->sizeHint(); + if ( t.width() > width() ) + t.setWidth( width() ); + int lw = m_widgetStack->lineWidth(); + if ( m_tabBarPosition == Bottom ) + m_tabBar->setGeometry( QMAX(0, lw-2), height() - t.height() - lw, t.width(), t.height() ); + else + m_tabBar->setGeometry( QMAX(0, lw-2), 0, t.width(), t.height() ); } else if ( m_tabBarStyle == TextTab ) { m_tabBar->setCurrentTab( tab->id() ); } @@ -415,17 +426,20 @@ void OTabWidget::resizeEvent( QResizeEvent * ) QSize t; if ( m_usingTabs ) { m_tabBar->layoutTabs(); t = m_tabBar->sizeHint(); + if ( t.width() > width() ) + t.setWidth( width() ); } else + { t = m_tabList->sizeHint(); - - t.setWidth( width() ); + t.setWidth( width() ); + } int lw = m_widgetStack->lineWidth(); if ( m_tabBarPosition == Bottom ) { if ( m_usingTabs ) m_tabBar->setGeometry( QMAX(0, lw-2), height() - t.height() - lw, t.width(), t.height() ); |