From cc6294f25ba79ab1ad55f5cae600666eb8700d7b Mon Sep 17 00:00:00 2001 From: Andrzej Hunt 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 Reviewed-by: Andrzej Hunt (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(nTilePosX) * nOutputWidth / nTileWidth; double fTilePosYPixel = static_cast(nTilePosY) * nOutputHeight / nTileHeight; -- 2.12.0