diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx index 8fb7ca7853de..4232223fb79d 100644 --- a/sc/source/ui/view/gridwin4.cxx +++ b/sc/source/ui/view/gridwin4.cxx @@ -968,8 +968,10 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI rDevice.SetMapMode(aDrawMode); static const double twipFactor = 15 * 1.76388889; // 26.45833335 - aOrigin = Point(aOrigin.getX() * twipFactor, - aOrigin.getY() * twipFactor); + // keep into account the zoom factor + aOrigin = Point((aOrigin.getX() * twipFactor) / static_cast(aDrawMode.GetScaleX()), + (aOrigin.getY() * twipFactor) / static_cast(aDrawMode.GetScaleY())); + MapMode aNew = rDevice.GetMapMode(); aNew.SetOrigin(aOrigin); rDevice.SetMapMode(aNew); @@ -1040,8 +1042,9 @@ void ScGridWindow::DrawContent(OutputDevice &rDevice, const ScTableInfo& rTableI aOrigin.setX(aOrigin.getX() / TWIPS_PER_PIXEL + nScrX); aOrigin.setY(aOrigin.getY() / TWIPS_PER_PIXEL + nScrY); static const double twipFactor = 15 * 1.76388889; // 26.45833335 - aOrigin = Point(aOrigin.getX() * twipFactor, - aOrigin.getY() * twipFactor); + // keep into account the zoom factor + aOrigin = Point((aOrigin.getX() * twipFactor) / static_cast(aDrawMode.GetScaleX()), + (aOrigin.getY() * twipFactor) / static_cast(aDrawMode.GetScaleY())); MapMode aNew = rDevice.GetMapMode(); aNew.SetOrigin(aOrigin); rDevice.SetMapMode(aNew);