From ebad4dec8c7e7427b3dbb3536ca3899a44e09f09 Mon Sep 17 00:00:00 2001 From: Michael Meeks Date: Mon, 28 Oct 2019 20:43:46 +0000 Subject: Revert "sc lok: Implement hi-dpi and zoom for spreadsheets." This reverts commit 498dceb43f870bf9e380f1f87e99c6ccadf1963c. Change-Id: Iadb9da47cf8c9a57385530ab888d55169db7639a Reviewed-on: https://gerrit.libreoffice.org/82095 Reviewed-by: Michael Meeks Tested-by: Michael Meeks --- sc/source/ui/unoobj/docuno.cxx | 10 +++++----- sc/source/ui/view/gridwin4.cxx | 31 +++++++++---------------------- 2 files changed, 14 insertions(+), 27 deletions(-) (limited to 'sc/source/ui') diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index ce98a24bd784..db81b7ea7772 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -894,12 +894,12 @@ bool ScModelObj::isMimeTypeSupported() return EditEngine::HasValidData(aDataHelper.GetTransferable()); } -void ScModelObj::setClientZoom(int /*nTilePixelWidth_*/, int /*nTilePixelHeight_*/, int /*nTileTwipWidth_*/, int /*nTileTwipHeight_*/) +void ScModelObj::setClientZoom(int nTilePixelWidth_, int nTilePixelHeight_, int nTileTwipWidth_, int nTileTwipHeight_) { - mnTilePixelWidth = 256; - mnTilePixelHeight = 256; - mnTileTwipWidth = mnTilePixelWidth * TWIPS_PER_PIXEL; - mnTileTwipHeight = mnTilePixelHeight * TWIPS_PER_PIXEL; + mnTilePixelWidth = nTilePixelWidth_; + mnTilePixelHeight = nTilePixelHeight_; + mnTileTwipWidth = nTileTwipWidth_; + mnTileTwipHeight = nTileTwipHeight_; } OUString ScModelObj::getRowColumnHeaders(const tools::Rectangle& rRectangle) diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx index 3271139cdbb7..75111de74eae 100644 --- a/sc/source/ui/view/gridwin4.cxx +++ b/sc/source/ui/view/gridwin4.cxx @@ -1113,30 +1113,17 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice, // coords only, and avoid all the SetMapMode()'s. // Similarly to Writer, we should set the mapmode once on the rDevice, and // not care about any zoom settings. - // - // But until that happens, we actually draw everything at 100%, and only - // set cairo's or CoreGraphic's scale factor accordingly, so that everything - // is painted bigger or smaller. This is different to what Calc's internal - // scaling would do - because that one is trying to fit the lines between - // cells to integer multiples of pixels. - // - // See also desktop/source/lib/init.cxx for details, where we have to set - // the stuff accordingly for the VirtualDevice creation. - - // page break zoom, and aLogicMode in ScViewData - hardcode that to what - // we mean as 100% (256px tiles meaning 3840 twips) - Fraction aFracX(long(256 * TWIPS_PER_PIXEL), 3840); - Fraction aFracY(long(256 * TWIPS_PER_PIXEL), 3840); - pViewData->SetZoom(aFracX, aFracY, true); - // Cairo or CoreGraphics scales for us, we have to compensate for that, - // otherwise we are painting too far away - const double fDPIScale = comphelper::LibreOfficeKit::getDPIScale(); + 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(aFracX, aFracY, true); - const double fTilePosXPixel = static_cast(nTilePosX) * nOutputWidth / (nTileWidth * fDPIScale); - const double fTilePosYPixel = static_cast(nTilePosY) * nOutputHeight / (nTileHeight * fDPIScale); - const double fTileBottomPixel = static_cast(nTilePosY + nTileHeight) * nOutputHeight / (nTileHeight * fDPIScale); - const double fTileRightPixel = static_cast(nTilePosX + nTileWidth) * nOutputWidth / (nTileWidth * fDPIScale); + const double fTilePosXPixel = static_cast(nTilePosX) * nOutputWidth / nTileWidth; + const double fTilePosYPixel = static_cast(nTilePosY) * nOutputHeight / nTileHeight; + const double fTileBottomPixel = static_cast(nTilePosY + nTileHeight) * nOutputHeight / nTileHeight; + const double fTileRightPixel = static_cast(nTilePosX + nTileWidth) * nOutputWidth / nTileWidth; SCTAB nTab = pViewData->GetTabNo(); ScDocument* pDoc = pViewData->GetDocument(); -- cgit