diff options
author | Caolán McNamara <caolanm@redhat.com> | 2017-02-20 16:51:17 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2017-02-20 17:20:02 +0000 |
commit | 917d5b8b26a7428f7b7dd495a8db14a3ce16aa55 (patch) | |
tree | 2b69bf48c496a450e2de23b4d177afcffae8d953 | |
parent | 3ee1c41ac72aaae9f364708b1c4df58d7643a341 (diff) |
Resolves: tdf#97731 allow status bar to adapt to its own preferred size
Change-Id: I4390f61a21eef21371ce7399bf746e60234b8db8
-rw-r--r-- | include/svtools/brwbox.hxx | 2 | ||||
-rw-r--r-- | svtools/source/brwbox/brwbox1.cxx | 10 | ||||
-rw-r--r-- | svtools/source/brwbox/editbrowsebox.cxx | 14 |
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; |