[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.4' - sc/source

Dennis Francis (via logerrit) logerrit at kemper.freedesktop.org
Mon Jul 6 15:39:56 UTC 2020


 sc/source/ui/view/gridwin4.cxx |   43 +++++++++++++++++++++++------------------
 1 file changed, 25 insertions(+), 18 deletions(-)

New commits:
commit f250d0024bcb6ac8d7586c3f1a66606473aedb28
Author:     Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Tue Jun 2 21:57:48 2020 +0530
Commit:     Dennis Francis <dennis.francis at collabora.com>
CommitDate: Mon Jul 6 17:39:22 2020 +0200

    scPrintTwipsMsgs: No more view specific edit-cursor messages
    
    Change-Id: I2a07834568716ea1608a40613108d229699058b7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98059
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Dennis Francis <dennis.francis at collabora.com>

diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index adf183b132f4..4d122af6d269 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -1120,28 +1120,35 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI
             pEditView->SetOutputArea(rDevice.PixelToLogic(aEditRect));
             pEditView->Paint(rDevice.PixelToLogic(aEditRect), &rDevice);
 
-            // Now we need to get relative cursor position within the editview.
-            // This is for sending the absolute twips position of the cursor to the specific views with
-            // the same given zoom level.
-            tools::Rectangle aCursorRect = pEditView->GetEditCursor();
-            Point aCursPos = OutputDevice::LogicToLogic(aCursorRect.TopLeft(), MapMode(MapUnit::Map100thMM), MapMode(MapUnit::MapTwip));
+            // EditView will do the cursor notifications correctly if we're in
+            // print-twips messaging mode.
+            if (!comphelper::LibreOfficeKit::isCompatFlagSet(
+                    comphelper::LibreOfficeKit::Compat::scPrintTwipsMsgs))
+            {
+                // Now we need to get relative cursor position within the editview.
+                // This is for sending the pixel-aligned twips position of the cursor to the specific views with
+                // the same given zoom level.
+                tools::Rectangle aCursorRect = pEditView->GetEditCursor();
+                Point aCursPos = OutputDevice::LogicToLogic(aCursorRect.TopLeft(),
+                        MapMode(MapUnit::Map100thMM), MapMode(MapUnit::MapTwip));
+
+                const MapMode& rDevMM = rDevice.GetMapMode();
+                MapMode aMM(MapUnit::MapTwip);
+                aMM.SetScaleX(rDevMM.GetScaleX());
+                aMM.SetScaleY(rDevMM.GetScaleY());
+
+                aBGAbs.AdjustLeft(1);
+                aBGAbs.AdjustTop(1);
+                aCursorRect = OutputDevice::PixelToLogic(aBGAbs, aMM);
+                aCursorRect.setWidth(0);
+                aCursorRect.Move(aCursPos.getX(), 0);
+                // Sends view cursor position to views of all matching zooms if needed (avoids duplicates).
+                InvalidateLOKViewCursor(aCursorRect, aMM.GetScaleX(), aMM.GetScaleY());
+            }
 
             // Rollback the mapmode and 'output area'.
             SetMapMode(aOrigMapMode);
             pEditView->SetOutputArea(aOrigOutputArea);
-
-            const MapMode& rDevMM = rDevice.GetMapMode();
-            MapMode aMM(MapUnit::MapTwip);
-            aMM.SetScaleX(rDevMM.GetScaleX());
-            aMM.SetScaleY(rDevMM.GetScaleY());
-
-            aBGAbs.AdjustLeft(1);
-            aBGAbs.AdjustTop(1);
-            aCursorRect = OutputDevice::PixelToLogic(aBGAbs, aMM);
-            aCursorRect.setWidth(0);
-            aCursorRect.Move(aCursPos.getX(), 0);
-            // Sends view cursor position to views of all matching zooms if needed (avoids duplicates).
-            InvalidateLOKViewCursor(aCursorRect, aMM.GetScaleX(), aMM.GetScaleY());
         }
         else
         {


More information about the Libreoffice-commits mailing list