summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/gridwin4.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/view/gridwin4.cxx')
-rw-r--r--sc/source/ui/view/gridwin4.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx
index a861daec3177..ac970535d72c 100644
--- a/sc/source/ui/view/gridwin4.cxx
+++ b/sc/source/ui/view/gridwin4.cxx
@@ -1098,6 +1098,9 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
int nTilePosX, int nTilePosY,
long nTileWidth, long nTileHeight )
{
+ Fraction origZoomX = pViewData->GetZoomX();
+ Fraction origZoomY = pViewData->GetZoomY();
+
// Output size is in pixels while tile position and size are in logical units (twips).
// Assumption: always paint the whole sheet i.e. "visible" range is always
@@ -1116,6 +1119,8 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
Fraction aFracX(long(nOutputWidth * TWIPS_PER_PIXEL), nTileWidth);
Fraction aFracY(long(nOutputHeight * TWIPS_PER_PIXEL), nTileHeight);
+ // FIXME: compare vs. origZoomX/Y and avoid re-setting the zoom ?
+
// page break zoom, and aLogicMode in ScViewData
pViewData->SetZoom(aFracX, aFracY, true);
@@ -1224,6 +1229,8 @@ void ScGridWindow::PaintTile( VirtualDevice& rDevice,
// Flag drawn formula cells "unchanged".
pDoc->ResetChanged(ScRange(nTopLeftTileCol, nTopLeftTileRow, nTab, nBottomRightTileCol, nBottomRightTileRow, nTab));
pDoc->PrepareFormulaCalc();
+
+ pViewData->SetZoom(origZoomX, origZoomY, true);
}
void ScGridWindow::LogicInvalidate(const tools::Rectangle* pRectangle)