summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/tabvwsh4.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/view/tabvwsh4.cxx')
-rw-r--r--sc/source/ui/view/tabvwsh4.cxx25
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()