summaryrefslogtreecommitdiff
path: root/vcl/source/window/status.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/window/status.cxx')
-rw-r--r--vcl/source/window/status.cxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/vcl/source/window/status.cxx b/vcl/source/window/status.cxx
index 4aaef6a707b1..ede3bcc107aa 100644
--- a/vcl/source/window/status.cxx
+++ b/vcl/source/window/status.cxx
@@ -1320,8 +1320,13 @@ void StatusBar::SetItemText( USHORT nItemId, const XubString& rText )
// adjust item width - see also DataChanged()
long nFudge = GetTextHeight()/4;
long nWidth = GetTextWidth( pItem->maText ) + nFudge;
- if( nWidth > pItem->mnWidth + STATUSBAR_OFFSET )
+ if( (nWidth > pItem->mnWidth + STATUSBAR_OFFSET) ||
+ ((nWidth < pItem->mnWidth) && (mnDX - STATUSBAR_OFFSET) < mnItemsWidth ))
+ {
pItem->mnWidth = nWidth + STATUSBAR_OFFSET;
+ ImplFormat();
+ Invalidate();
+ }
// Item neu Zeichen, wenn StatusBar sichtbar und
// UpdateMode gesetzt ist