summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/dialog/basedlgs.cxx11
-rw-r--r--sfx2/source/view/lokhelper.cxx13
2 files changed, 24 insertions, 0 deletions
diff --git a/sfx2/source/dialog/basedlgs.cxx b/sfx2/source/dialog/basedlgs.cxx
index dd35973c024c..4b4bacd82b1c 100644
--- a/sfx2/source/dialog/basedlgs.cxx
+++ b/sfx2/source/dialog/basedlgs.cxx
@@ -18,7 +18,10 @@
*/
#include <stdlib.h>
+
+#include <comphelper/lok.hxx>
#include <comphelper/processfactory.hxx>
+
#include <osl/file.hxx>
#include <vcl/fixed.hxx>
#include <vcl/help.hxx>
@@ -29,6 +32,7 @@
#include <vcl/idle.hxx>
#include <sfx2/basedlgs.hxx>
+#include <sfx2/lokhelper.hxx>
#include <sfx2/viewfrm.hxx>
#include <sfx2/tabdlg.hxx>
#include <sfx2/app.hxx>
@@ -394,6 +398,13 @@ void SfxModelessDialog::FillInfo(SfxChildWinInfo& rInfo) const
}
+void SfxModelessDialog::LogicInvalidate(const Rectangle* /*pRectangle*/)
+{
+ if (!comphelper::LibreOfficeKit::isDialogPainting())
+ SfxLokHelper::notifyDialogInvalidation(maID);
+}
+
+
bool SfxFloatingWindow::Notify( NotifyEvent& rEvt )
/* [Description]
diff --git a/sfx2/source/view/lokhelper.cxx b/sfx2/source/view/lokhelper.cxx
index bfcd000eba01..5be64690ac47 100644
--- a/sfx2/source/view/lokhelper.cxx
+++ b/sfx2/source/view/lokhelper.cxx
@@ -132,6 +132,19 @@ void SfxLokHelper::notifyOtherViews(SfxViewShell* pThisView, int nType, const OS
}
}
+void SfxLokHelper::notifyDialogInvalidation(const OUString& rDialogID)
+{
+ if (SfxLokHelper::getViewsCount() <= 0)
+ return;
+
+ SfxViewShell* pViewShell = SfxViewShell::GetFirst();
+ while (pViewShell)
+ {
+ pViewShell->libreOfficeKitViewCallback(LOK_CALLBACK_DIALOG_INVALIDATE, OUStringToOString(rDialogID, RTL_TEXTENCODING_UTF8).getStr());
+ pViewShell = SfxViewShell::GetNext(*pViewShell);
+ }
+}
+
void SfxLokHelper::notifyInvalidation(SfxViewShell* pThisView, const OString& rPayload)
{
std::stringstream ss;