diff options
-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; |