summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorDennis Francis <dennis.francis@collabora.com>2021-11-18 12:32:26 +0530
committerDennis Francis <dennis.francis@collabora.com>2022-01-27 11:25:39 +0100
commit6db8c9c40bbeb8c4c4601d0a05151754727a2dc6 (patch)
tree80b1873c974dfcb2b5c489760fc5b59b1680f835 /sc/source/ui
parent2cb7c14eff5c4b2051c7039ba31239ee6a2a68f0 (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/source/ui')
-rw-r--r--sc/source/ui/view/tabview3.cxx7
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 );