diff options
author | Dennis Francis <dennis.francis@collabora.com> | 2021-11-18 12:32:26 +0530 |
---|---|---|
committer | Dennis Francis <dennis.francis@collabora.com> | 2022-01-27 11:25:39 +0100 |
commit | 6db8c9c40bbeb8c4c4601d0a05151754727a2dc6 (patch) | |
tree | 80b1873c974dfcb2b5c489760fc5b59b1680f835 /sc | |
parent | 2cb7c14eff5c4b2051c7039ba31239ee6a2a68f0 (diff) |
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.francis@collabora.com>
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/view/tabview3.cxx | 7 |
1 files changed, 4 insertions, 3 deletions
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 ); |