[Libreoffice-commits] core.git: svx/source

Regina Henschel (via logerrit) logerrit at kemper.freedesktop.org
Tue Jan 12 13:08:37 UTC 2021


 svx/source/svdraw/svdpagv.cxx |   18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

New commits:
commit 7635a475130a0e9e3b0dded853348659d07a00d7
Author:     Regina Henschel <rb.henschel at t-online.de>
AuthorDate: Fri Jan 8 18:26:38 2021 +0100
Commit:     Regina Henschel <rb.henschel at t-online.de>
CommitDate: Tue Jan 12 14:07:30 2021 +0100

    tdf#137083 consider negative width in DrawPageViewGrid
    
    SdrPageView::DrawPageViewGrid is called too for a ScDrawPage of a
    RTL-sheet. In that case both the width of the SdrPage and the left
    edge of the passed rectangle are negative. The x-values for drawing
    the grid were wrong and a right-to-left sheet did not show the grid.
    The patch adds a case distinction with correct x-values for case RTL.
    
    Change-Id: I6d0c15bf7bbe8aff6ab2e72a440ba81f2e0e2281
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108989
    Tested-by: Jenkins
    Reviewed-by: Regina Henschel <rb.henschel at t-online.de>

diff --git a/svx/source/svdraw/svdpagv.cxx b/svx/source/svdraw/svdpagv.cxx
index 0db7711890e0..c793d453734f 100644
--- a/svx/source/svdraw/svdpagv.cxx
+++ b/svx/source/svdraw/svdpagv.cxx
@@ -439,10 +439,20 @@ void SdrPageView::DrawPageViewGrid(OutputDevice& rOut, const tools::Rectangle& r
     tools::Long nWrX=0;
     tools::Long nWrY=0;
     Point aOrg(aPgOrg);
-    tools::Long x1=GetPage()->GetLeftBorder()+1+nWrX;
-    tools::Long x2=GetPage()->GetWidth()-GetPage()->GetRightBorder()-1+nWrY;
-    tools::Long y1=GetPage()->GetUpperBorder()+1+nWrX;
-    tools::Long y2=GetPage()->GetHeight()-GetPage()->GetLowerBorder()-1+nWrY;
+    tools::Long x1 = 0;
+    tools::Long x2 = 0;
+    if (GetPage()->GetWidth() < 0) // ScDrawPage of RTL sheet
+    {
+        x1 = GetPage()->GetWidth() + GetPage()->GetLeftBorder() + 1;
+        x2 = - GetPage()->GetRightBorder() - 1;
+    }
+    else
+    {
+        x1 = GetPage()->GetLeftBorder() + 1;
+        x2 = GetPage()->GetWidth() - GetPage()->GetRightBorder() - 1;
+    }
+    tools::Long y1 = GetPage()->GetUpperBorder() + 1;
+    tools::Long y2 = GetPage()->GetHeight() - GetPage()->GetLowerBorder() - 1;
     const SdrPageGridFrameList* pFrames=GetPage()->GetGridFrameList(this,nullptr);
 
     sal_uInt16 nGridPaintCnt=1;


More information about the Libreoffice-commits mailing list