tdf#129856 invalidate old internal border if we scroll
and will redraw a new one
Change-Id: I2438af94e54f31c617cc183c61fbaaef31b5601f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95911
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
diff --git a/vcl/source/treelist/headbar.cxx b/vcl/source/treelist/headbar.cxx
index e87790e..7020c61 100644
--- a/vcl/source/treelist/headbar.cxx
+++ b/vcl/source/treelist/headbar.cxx
@@ -1110,8 +1110,15 @@ void HeaderBar::Clear()
void HeaderBar::SetOffset( long nNewOffset )
{
// tdf#129856 (see also #i40393#) invalidate old left and right border area if WB_BORDER was set in ImplInit()
if (mnBorderOff1 && mnBorderOff2)
{
Invalidate(tools::Rectangle(0, 0, 1, mnDY));
Invalidate(tools::Rectangle(mnDX - 1, 0, mnDX, mnDY));
}
// move area
tools::Rectangle aRect( 0, mnBorderOff1, mnDX-1, mnDY-mnBorderOff1-mnBorderOff2-1 );
tools::Rectangle aRect( 0, mnBorderOff1, mnDX-1, mnDY-mnBorderOff1-mnBorderOff2 );
long nDelta = mnOffset-nNewOffset;
mnOffset = nNewOffset;
Scroll( nDelta, 0, aRect );