From fe52c79323f9ac4b5ea61e7d7e5f038552e9a247 Mon Sep 17 00:00:00 2001 From: Dennis Francis Date: Wed, 14 Apr 2021 13:26:26 +0530 Subject: lok: fix incomplete/wrong tiles after zoom change and sheet switch Fix: Reset position cache for all sheets on zoom change. Change-Id: I58264d4674d2cb736c702096ffd52faffb603ec6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114227 Tested-by: Jenkins CollaboraOffice Reviewed-by: Michael Meeks --- sc/source/ui/view/viewdata.cxx | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index b1470ad68b44..6b735e21130c 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -3148,10 +3148,25 @@ void ScViewData::CalcPPT() } } - if (nPPTX != nOldPPTX) - GetLOKWidthHelper().invalidateByPosition(0L); - if (nPPTY != nOldPPTY) - GetLOKHeightHelper().invalidateByPosition(0L); + if (pDoc && comphelper::LibreOfficeKit::isActive()) + { + SCTAB nTabCount = maTabData.size(); + bool bResetWidths = (nPPTX != nOldPPTX); + bool bResetHeights = (nPPTY != nOldPPTY); + for (SCTAB nTabIdx = 0; nTabIdx < nTabCount; ++nTabIdx) + { + if (!maTabData[nTabIdx]) + continue; + + if (bResetWidths) + if (auto* pWHelper = GetLOKWidthHelper(nTabIdx)) + pWHelper->invalidateByPosition(0L); + + if (bResetHeights) + if (auto* pHHelper = GetLOKHeightHelper(nTabIdx)) + pHHelper->invalidateByPosition(0L); + } + } } #define SC_OLD_TABSEP '/' -- cgit