include/vcl/layout.hxx | 2 -- vcl/source/window/layout.cxx | 20 ++++---------------- 2 files changed, 4 insertions(+), 18 deletions(-)
New commits: commit 99141aea4d81d89ff5d14087e6647b25f7018e8b Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Sep 3 21:16:13 2021 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Tue Sep 7 10:51:24 2021 +0200 Related: tdf#142458 don't change border size during Paint so GetOptimalSize/get_preferred_size before/after paint has the same result Change-Id: I25abe31c069561e30a9af7c4b9b81582298e0f9d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121616 Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/vcl/layout.hxx b/include/vcl/layout.hxx index 14c85938d639..19eca5b5cf40 100644 --- a/include/vcl/layout.hxx +++ b/include/vcl/layout.hxx @@ -500,8 +500,6 @@ public: private: virtual Size calculateRequisition() const override; virtual void setAllocation(const Size &rAllocation) override; - // sets new border size and adapts scrollbar and child widget position/size as needed - void updateBorderWidth(tools::Long nBorderWidth); int CalcBorderWidth() const; DECL_LINK(ScrollBarHdl, ScrollBar*, void); void InitScrollBars(const Size &rRequest); diff --git a/vcl/source/window/layout.cxx b/vcl/source/window/layout.cxx index 680a650f34f2..d9f479ee39e6 100644 --- a/vcl/source/window/layout.cxx +++ b/vcl/source/window/layout.cxx @@ -2100,27 +2100,15 @@ bool VclScrolledWindow::EventNotify(NotifyEvent& rNEvt) return bDone || VclBin::EventNotify( rNEvt ); } -void VclScrolledWindow::updateBorderWidth(tools::Long nBorderWidth) -{ - if (m_nBorderWidth == nBorderWidth || nBorderWidth < 1) - return; - - m_nBorderWidth = nBorderWidth; - // update scrollbars and child window - doSetAllocation(GetSizePixel(), false); -}; - void VclScrolledWindow::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& rRect) { + VclBin::Paint(rRenderContext, rRect); const tools::Rectangle aRect(tools::Rectangle(Point(0,0), GetSizePixel())); DecorationView aDecoView(&rRenderContext); const tools::Rectangle aContentRect = aDecoView.DrawFrame(aRect, m_eDrawFrameStyle, m_eDrawFrameFlags); - - // take potentially changed frame size into account before rendering content - const tools::Long nFrameWidth = (aRect.GetWidth() - aContentRect.GetWidth()) / 2; - updateBorderWidth(nFrameWidth); - - VclBin::Paint(rRenderContext, rRect); + const auto nBorderWidth = (aRect.GetWidth() - aContentRect.GetWidth()) / 2; + SAL_WARN_IF(nBorderWidth > m_nBorderWidth, "vcl.layout", "desired border at paint " << + nBorderWidth << " is larger than expected " << m_nBorderWidth); } void VclViewport::setAllocation(const Size &rAllocation)