summaryrefslogtreecommitdiff
path: root/svtools/source/brwbox/brwbox2.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-01-30 16:32:01 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-01-31 09:52:06 +0100
commit50547d359ff5229da1108b097612412bb06a3000 (patch)
treec514be5d8649410f65fa0c1784edb379569abaa0 /svtools/source/brwbox/brwbox2.cxx
parentd87bf779c7a5fc5512b53aa175222d8f71d6698b (diff)
tdf#115941 use max of scrollbar and statusbar height for record locater
Change-Id: I639fd1c593e7cc440de5d2038562e64eab1a5af6 Reviewed-on: https://gerrit.libreoffice.org/67164 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'svtools/source/brwbox/brwbox2.cxx')
-rw-r--r--svtools/source/brwbox/brwbox2.cxx19
1 files changed, 14 insertions, 5 deletions
diff --git a/svtools/source/brwbox/brwbox2.cxx b/svtools/source/brwbox/brwbox2.cxx
index 8af97408a2d7..f2aa331e18b7 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -475,9 +475,7 @@ void BrowseBox::Resize()
pDataWin->bResizeOnPaint = false;
// calc the size of the scrollbars
- // (we can't ask the scrollbars for their widths cause if we're zoomed they still have to be
- // resized - which is done in UpdateScrollbars)
- sal_uLong nSBSize = GetSettings().GetStyleSettings().GetScrollBarSize();
+ sal_uLong nSBSize = GetBarHeight();
if (IsZoom())
nSBSize = static_cast<sal_uLong>(nSBSize * static_cast<double>(GetZoom()));
@@ -1028,6 +1026,17 @@ void BrowseBox::PaintData( vcl::Window const & rWin, vcl::RenderContext& rRender
ImplPaintData(rRenderContext, rRect, false);
}
+long BrowseBox::GetBarHeight() const
+{
+ // tdf#115941 because some platforms have things like overlay scrollbars, take a max
+ // of a statusbar height and a scrollbar height as the control area height
+
+ // (we can't ask the scrollbars for their size cause if we're zoomed they still have to be
+ // resized - which is done in UpdateScrollbars)
+
+ return std::max(aStatusBar->GetSizePixel().Height(), GetSettings().GetStyleSettings().GetScrollBarSize());
+}
+
void BrowseBox::UpdateScrollbars()
{
@@ -1043,7 +1052,7 @@ void BrowseBox::UpdateScrollbars()
pDataWin->bInUpdateScrollbars = true;
// the size of the corner window (and the width of the VSB/height of the HSB)
- sal_uLong nCornerSize = GetSettings().GetStyleSettings().GetScrollBarSize();
+ sal_uLong nCornerSize = GetBarHeight();
if (IsZoom())
nCornerSize = static_cast<sal_uLong>(nCornerSize * static_cast<double>(GetZoom()));
@@ -1940,7 +1949,7 @@ tools::Rectangle BrowseBox::calcTableRect(bool _bOnScreen)
long nY = aRowBar.Top() - aRect.Top();
Size aSize(aRect.GetSize());
- return tools::Rectangle(aRowBar.TopRight(), Size(aSize.Width() - nX, aSize.Height() - nY - aHScroll->GetSizePixel().Height()) );
+ return tools::Rectangle(aRowBar.TopRight(), Size(aSize.Width() - nX, aSize.Height() - nY - GetBarHeight()) );
}
tools::Rectangle BrowseBox::GetFieldRectPixelAbs( sal_Int32 _nRowId, sal_uInt16 _nColId, bool /*_bIsHeader*/, bool _bOnScreen )