sw/source/core/view/viewsh.cxx | 48 ++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 26 deletions(-)
New commits: commit bd9430864240d3073333ce4e7461ae148b9226d3 Author: Caolán McNamara <caolan.mcnam...@collabora.com> AuthorDate: Wed May 17 09:03:20 2023 +0100 Commit: Caolán McNamara <caolan.mcnam...@collabora.com> CommitDate: Fri May 19 09:59:44 2023 +0200 bPaint is now always true here Change-Id: I9a9ef0b85140dd622c42983613464f76e29ee35e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151870 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com> diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx index 16717f4e540d..0d8ed870085d 100644 --- a/sw/source/core/view/viewsh.cxx +++ b/sw/source/core/view/viewsh.cxx @@ -342,36 +342,32 @@ void SwViewShell::ImplEndAction( const bool bIdleEnd ) SwRect aRect( oRegion->back() ); oRegion->pop_back(); - const bool bPaint = true; - if ( bPaint ) + if (GetWin()->SupportsDoubleBuffering()) + InvalidateWindows(aRect); + else { - if (GetWin()->SupportsDoubleBuffering()) - InvalidateWindows(aRect); - else + // #i75172# begin DrawingLayer paint + // need to do begin/end DrawingLayer preparation for each single rectangle of the + // repaint region. I already tried to prepare only once for the whole Region. This + // seems to work (and does technically) but fails with transparent objects. Since the + // region given to BeginDrawLayers() defines the clip region for DrawingLayer paint, + // transparent objects in the single rectangles will indeed be painted multiple times. + if (!comphelper::LibreOfficeKit::isActive()) { - // #i75172# begin DrawingLayer paint - // need to do begin/end DrawingLayer preparation for each single rectangle of the - // repaint region. I already tried to prepare only once for the whole Region. This - // seems to work (and does technically) but fails with transparent objects. Since the - // region given to BeginDrawLayers() defines the clip region for DrawingLayer paint, - // transparent objects in the single rectangles will indeed be painted multiple times. - if (!comphelper::LibreOfficeKit::isActive()) - { - DLPrePaint2(vcl::Region(aRect.SVRect())); - } + DLPrePaint2(vcl::Region(aRect.SVRect())); + } - if ( bPaintsFromSystem ) - PaintDesktop(*GetOut(), aRect); - if (!comphelper::LibreOfficeKit::isActive()) - pCurrentLayout->PaintSwFrame( *mpOut, aRect ); - else - pCurrentLayout->GetCurrShell()->InvalidateWindows(aRect); + if ( bPaintsFromSystem ) + PaintDesktop(*GetOut(), aRect); + if (!comphelper::LibreOfficeKit::isActive()) + pCurrentLayout->PaintSwFrame( *mpOut, aRect ); + else + pCurrentLayout->GetCurrShell()->InvalidateWindows(aRect); - // #i75172# end DrawingLayer paint - if (!comphelper::LibreOfficeKit::isActive()) - { - DLPostPaint2(true); - } + // #i75172# end DrawingLayer paint + if (!comphelper::LibreOfficeKit::isActive()) + { + DLPostPaint2(true); } }