summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2017-02-20 16:51:17 +0000
committerCaolán McNamara <caolanm@redhat.com>2017-02-20 17:20:02 +0000
commit917d5b8b26a7428f7b7dd495a8db14a3ce16aa55 (patch)
tree2b69bf48c496a450e2de23b4d177afcffae8d953
parent3ee1c41ac72aaae9f364708b1c4df58d7643a341 (diff)
Resolves: tdf#97731 allow status bar to adapt to its own preferred size
Change-Id: I4390f61a21eef21371ce7399bf746e60234b8db8
-rw-r--r--include/svtools/brwbox.hxx2
-rw-r--r--svtools/source/brwbox/brwbox1.cxx10
-rw-r--r--svtools/source/brwbox/editbrowsebox.cxx14
3 files changed, 15 insertions, 11 deletions
diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx
index 237ee5cbf6b9..ae950f5400a6 100644
--- a/include/svtools/brwbox.hxx
+++ b/include/svtools/brwbox.hxx
@@ -522,7 +522,7 @@ public:
void RowInserted( long nRow, long nNumRows = 1, bool bDoPaint = true, bool bKeepSelection = false );
// miscellaneous
- void ReserveControlArea( sal_uInt16 nWidth = USHRT_MAX );
+ bool ReserveControlArea(sal_uInt16 nWidth = USHRT_MAX);
Rectangle GetControlArea() const;
bool ProcessKey( const KeyEvent& rEvt );
void Dispatch( sal_uInt16 nId );
diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx
index c16c1d6f5678..c4a0ab98ac2a 100644
--- a/svtools/source/brwbox/brwbox1.cxx
+++ b/svtools/source/brwbox/brwbox1.cxx
@@ -2092,19 +2092,18 @@ sal_uInt16 BrowseBox::GetColumnAtXPosPixel( long nX, bool ) const
return BROWSER_INVALIDID;
}
-
-void BrowseBox::ReserveControlArea( sal_uInt16 nWidth )
+bool BrowseBox::ReserveControlArea(sal_uInt16 nWidth)
{
-
- if ( nWidth != nControlAreaWidth )
+ if (nWidth != nControlAreaWidth)
{
OSL_ENSURE(nWidth,"Control area of 0 is not allowed, Use USHRT_MAX instead!");
nControlAreaWidth = nWidth;
UpdateScrollbars();
+ return true;
}
+ return false;
}
-
Rectangle BrowseBox::GetControlArea() const
{
@@ -2114,7 +2113,6 @@ Rectangle BrowseBox::GetControlArea() const
aHScroll->GetSizePixel().Height() ) );
}
-
void BrowseBox::SetMode( BrowserMode nMode )
{
diff --git a/svtools/source/brwbox/editbrowsebox.cxx b/svtools/source/brwbox/editbrowsebox.cxx
index d81d10d87949..58121713d41b 100644
--- a/svtools/source/brwbox/editbrowsebox.cxx
+++ b/svtools/source/brwbox/editbrowsebox.cxx
@@ -1091,7 +1091,6 @@ namespace svt
return nId;
}
-
void EditBrowseBox::Resize()
{
BrowseBox::Resize();
@@ -1110,15 +1109,22 @@ namespace svt
if (!nX)
nX = USHRT_MAX;
- ReserveControlArea((sal_uInt16)nX);
- }
+ bool bChanged = ReserveControlArea(nX);
+
+ //tdf#97731 if the reserved area changed size, give the controls a
+ //chance to adapt to the new size
+ if (bChanged)
+ {
+ nX = (sal_uInt16)aPoint.X();
+ ArrangeControls(nX, (sal_uInt16)aPoint.Y());
+ }
+ }
void EditBrowseBox::ArrangeControls(sal_uInt16&, sal_uInt16)
{
}
-
CellController* EditBrowseBox::GetController(long, sal_uInt16)
{
return nullptr;