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 <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
(cherry picked from commit fe52c79323f9ac4b5ea61e7d7e5f038552e9a247)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114363
Tested-by: Jenkins
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 980e887..0150838 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -3144,10 +3144,25 @@ void ScViewData::CalcPPT()
        }
    }

    if (nPPTX != nOldPPTX)
        GetLOKWidthHelper().invalidateByPosition(0L);
    if (nPPTY != nOldPPTY)
        GetLOKHeightHelper().invalidateByPosition(0L);
    if (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   '/'