diff options
Diffstat (limited to 'sc/source/ui/view/tabvwsh4.cxx')
-rw-r--r-- | sc/source/ui/view/tabvwsh4.cxx | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/sc/source/ui/view/tabvwsh4.cxx b/sc/source/ui/view/tabvwsh4.cxx index 4ef54ad4bce0..aa6f7634fc8f 100644 --- a/sc/source/ui/view/tabvwsh4.cxx +++ b/sc/source/ui/view/tabvwsh4.cxx @@ -572,7 +572,30 @@ void ScTabViewShell::UpdateDrawShell() SdrView* pDrView = GetSdrView(); if ( pDrView && !pDrView->AreObjectsMarked() && !IsDrawSelMode() ) - SetDrawShell( false ); + { + SetDrawShell(false); + + // FIXME HACK: The ViewObjectContact sdr thing is not set up well + // enough for the invalidate to work here automagically, because + // we set it up for each tile, and it does not survive for too + // long. + if (comphelper::LibreOfficeKit::isActive()) + { + std::stringstream ss; + ss << "EMPTY"; + if (comphelper::LibreOfficeKit::isPartInInvalidation()) + ss << ", " << getPart(); + OString aPayload = ss.str().c_str(); + + SfxViewShell* pCurView = SfxViewShell::GetFirst(); + while (pCurView) + { + pCurView->libreOfficeKitViewCallback(LOK_CALLBACK_INVALIDATE_TILES, aPayload.getStr()); + + pCurView = SfxViewShell::GetNext(*pCurView); + } + } + } } void ScTabViewShell::SetDrawShellOrSub() |