Blob Blame History Raw
From cc6294f25ba79ab1ad55f5cae600666eb8700d7b Mon Sep 17 00:00:00 2001
From: Andrzej Hunt <andrzej@ahunt.org>
Date: Fri, 6 Nov 2015 17:36:18 +0100
Subject: [PATCH 286/398] Revert "sc lok: Cache viewdata zoom and reuse for
 cursor callback"

This reverts fab3c48a0cd5a0517025993502a04358308fe5ef for now.
The correct solution is to have the client "hint" at the current
resolution, which is still being developed
(gerrit-id: I34b5afcdcc06a671a8ac92c03e87404e42adf4cd).
For now the cursor will be wrongly positioned when moved as the result
of a mouse click.

Reviewed-on: https://gerrit.libreoffice.org/19827
Tested-by: Andrzej Hunt <andrzej@ahunt.org>
Reviewed-by: Andrzej Hunt <andrzej@ahunt.org>
(cherry picked from commit 064fb1f73abbc103226a8fce8a46b7e8b8347dac)

Change-Id: I68d56eac958e607e8e2e3ad16aff4e1a7dd0b6dd
---
 sc/source/ui/inc/gridwin.hxx   | 9 ---------
 sc/source/ui/view/gridwin.cxx  | 4 +++-
 sc/source/ui/view/gridwin4.cxx | 6 +++---
 3 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/sc/source/ui/inc/gridwin.hxx b/sc/source/ui/inc/gridwin.hxx
index 8081f107409c..dc1cec7fd8c7 100644
--- a/sc/source/ui/inc/gridwin.hxx
+++ b/sc/source/ui/inc/gridwin.hxx
@@ -200,15 +200,6 @@ class ScGridWindow : public vcl::Window, public DropTargetHelper, public DragSou
     bool                    bAutoMarkVisible:1;
     bool                    bListValButton:1;
 
-    // We cache the tiled rendering zoom level in order to be able to
-    // calculate the correct cell cursor position (which is dependent
-    // on the zoom level). The caching is necessary since
-    // ScModelObj::postMouseEvent resets the zoom level to the default,
-    // which means we have the default zoom level set during the
-    // cell cursor position calculations in updateLibreOfficeKitCellCursor().
-    Fraction                mTiledZoomX;
-    Fraction                mTiledZoomY;
-
     DECL_LINK( PopupModeEndHdl, void* );
     DECL_LINK( PopupSpellingHdl, SpellCallbackInfo* );
 
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index efa8d332ad2a..d6887b6f4e07 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -5834,7 +5834,9 @@ void ScGridWindow::updateLibreOfficeKitCellCursor()
 {
     ScDocument* pDoc = pViewData->GetDocument();
     ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
-    OString aCursor = getCellCursor(mTiledZoomX, mTiledZoomY);
+    // TODO: the zoom levels here should be replaced by the setClientZoom values
+    // in a patch currently in gerrit (https://gerrit.libreoffice.org/#/c/19822/)
+    OString aCursor = getCellCursor(pViewData->GetZoomX(), pViewData->GetZoomY());
     pDrawLayer->libreOfficeKitCallback(LOK_CALLBACK_CELL_CURSOR, aCursor.getStr());
 }
 
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index cfdde43e1a04..ceaf3d8d7c3a 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -955,11 +955,11 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
     // Similarly to Writer, we should set the mapmode once on the rDevice, and
     // not care about any zoom settings.
 
-    mTiledZoomX = Fraction(long(nOutputWidth * TWIPS_PER_PIXEL), nTileWidth);
-    mTiledZoomY = Fraction(long(nOutputHeight * TWIPS_PER_PIXEL), nTileHeight);
+    Fraction aFracX(long(nOutputWidth * TWIPS_PER_PIXEL), nTileWidth);
+    Fraction aFracY(long(nOutputHeight * TWIPS_PER_PIXEL), nTileHeight);
 
     // page break zoom, and aLogicMode in ScViewData
-    pViewData->SetZoom(mTiledZoomX, mTiledZoomY, true);
+    pViewData->SetZoom(aFracX, aFracY, true);
 
     double fTilePosXPixel = static_cast<double>(nTilePosX) * nOutputWidth / nTileWidth;
     double fTilePosYPixel = static_cast<double>(nTilePosY) * nOutputHeight / nTileHeight;
-- 
2.12.0