summaryrefslogtreecommitdiff
path: root/libopie2/opieui
Side-by-side diff
Diffstat (limited to 'libopie2/opieui') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/otabwidget.cpp18
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() );