sc/source/ui/view/tabview3.cxx |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

New commits:
commit 6db8c9c40bbeb8c4c4601d0a05151754727a2dc6
Author:     Dennis Francis <dennis.fran...@collabora.com>
AuthorDate: Thu Nov 18 12:32:26 2021 +0530
Commit:     Dennis Francis <dennis.fran...@collabora.com>
CommitDate: Thu Jan 27 11:25:39 2022 +0100

    lokCalcRTL: incorrect invalidation rectangle for...
    
    cell properties change. LOK client expects invalidation rectangle in
    document coordinates so ensure we don't mirror the x coordinate.
    
    Change-Id: I27bdd29a0d56c7a7b838b7669e3edde805dd1504
    (cherry picked from commit d819e543c13f85bd9c18fbe61c7983efab9d21c5)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128895
    Tested-by: Jenkins
    Reviewed-by: Dennis Francis <dennis.fran...@collabora.com>

diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx
index d1543b22cfe6..123c34d93ed7 100644
--- a/sc/source/ui/view/tabview3.cxx
+++ b/sc/source/ui/view/tabview3.cxx
@@ -2375,10 +2375,11 @@ void ScTabView::PaintArea( SCCOL nStartCol, SCROW 
nStartRow, SCCOL nEndCol, SCRO
             continue;
 
         bool bLayoutRTL = aViewData.GetDocument().IsLayoutRTL( 
aViewData.GetTabNo() );
-        tools::Long nLayoutSign = bLayoutRTL ? -1 : 1;
+        tools::Long nLayoutSign = (!bIsTiledRendering && bLayoutRTL) ? -1 : 1;
 
         Point aStart = aViewData.GetScrPos( nCol1, nRow1, 
static_cast<ScSplitPos>(i) );
         Point aEnd   = aViewData.GetScrPos( nCol2+1, nRow2+1, 
static_cast<ScSplitPos>(i) );
+
         if ( eMode == ScUpdateMode::All )
         {
             if (bIsTiledRendering)
@@ -2390,11 +2391,11 @@ void ScTabView::PaintArea( SCCOL nStartCol, SCROW 
nStartRow, SCCOL nEndCol, SCRO
                 // Remember that wsd expects int and that aEnd.X() is
                 // in pixels and will be converted in twips, before performing
                 // the lok callback, so we need to avoid that an overflow 
occurs.
-                aEnd.setX( bLayoutRTL ? 0 : std::numeric_limits<int>::max() / 
1000 );
+                aEnd.setX( (!bIsTiledRendering && bLayoutRTL) ? 0 : 
std::numeric_limits<int>::max() / 1000 );
             }
             else
             {
-                aEnd.setX( bLayoutRTL ? 0 : 
pGridWin[i]->GetOutputSizePixel().Width() );
+                aEnd.setX( (!bIsTiledRendering && bLayoutRTL) ? 0 : 
pGridWin[i]->GetOutputSizePixel().Width() );
             }
         }
         aEnd.AdjustX( -nLayoutSign );

Reply via email to