summaryrefslogtreecommitdiff
path: root/sc/source/ui
diff options
context:
space:
mode:
authorDennis Francis <dennis.francis@collabora.com>2021-11-22 14:29:05 +0530
committerDennis Francis <dennis.francis@collabora.com>2022-01-29 05:04:00 +0100
commit86125f45b8cb608a5f9277fa8013f175496dfe4d (patch)
tree00e4c1cfb44d7dc0628e579b8c82538e4d4aff71 /sc/source/ui
parent47c793529eabbd1395c7251b91a83efb853950d8 (diff)
lokCalcRTL: fix editcell painting from other views as well
Change-Id: Iac431996570f1f7eb091809442d8781ea60aa9b5 (cherry picked from commit 455d4047487396c3c70d6113ac5d07deecb1d3a1) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128899 Tested-by: Jenkins Reviewed-by: Dennis Francis <dennis.francis@collabora.com>
Diffstat (limited to 'sc/source/ui')
-rw-r--r--sc/source/ui/view/gridwin4.cxx14
1 files changed, 14 insertions, 0 deletions
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index 4ef2e92ad0fd..4f1f1cc49130 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -1063,12 +1063,26 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
Point aStart = mrViewData.GetScrPos( nCol1, nRow1, eOtherWhich );
Point aEnd = mrViewData.GetScrPos( nCol2+1, nRow2+1, eOtherWhich );
+ if (bIsTiledRendering && bLayoutRTL)
+ {
+ // Transform the cell range X coordinates such that the edit cell area is
+ // horizontally mirrored w.r.t the (combined-)tile.
+ tools::Long nStartTileX = -o3tl::convert(aOriginalMode.GetOrigin().X(), o3tl::Length::twip, o3tl::Length::px);
+ // Note: nStartTileX is scaled by 2 only to offset for the addition of
+ // the -ve of the same qty (and nScrX) few lines below.
+ tools::Long nMirrorX = 2 * nStartTileX + aOutputData.GetScrW();
+ aStart.setX(nMirrorX - 1 - aStart.X());
+ aEnd.setX(nMirrorX - 1 - aEnd.X());
+ }
+
// don't overwrite grid
tools::Long nLayoutSign = bLayoutRTL ? -1 : 1;
aEnd.AdjustX( -(2 * nLayoutSign) );
aEnd.AdjustY( -2 );
tools::Rectangle aBackground(aStart, aEnd);
+ if (bIsTiledRendering && bLayoutRTL)
+ aBackground.Justify();
// Need to draw the background in absolute coords.
Point aOrigin = aOriginalMode.GetOrigin();