diff options
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/dialog/basedlgs.cxx | 11 | ||||
-rw-r--r-- | sfx2/source/view/lokhelper.cxx | 13 |
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; |