diff options
Diffstat (limited to 'svtools')
-rw-r--r-- | svtools/source/brwbox/brwbox1.cxx | 10 | ||||
-rw-r--r-- | svtools/source/brwbox/editbrowsebox.cxx | 14 |
2 files changed, 14 insertions, 10 deletions
diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx index 8a7b1fac54a7..bd6b16b2305c 100644 --- a/svtools/source/brwbox/brwbox1.cxx +++ b/svtools/source/brwbox/brwbox1.cxx @@ -2091,19 +2091,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 { @@ -2113,7 +2112,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 df1df0806497..92991023a883 100644 --- a/svtools/source/brwbox/editbrowsebox.cxx +++ b/svtools/source/brwbox/editbrowsebox.cxx @@ -1103,7 +1103,6 @@ namespace svt return nId; } - void EditBrowseBox::Resize() { BrowseBox::Resize(); @@ -1122,15 +1121,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; |