[Libreoffice-commits] core.git: Branch 'distro/collabora/cp-6.2' - vcl/source

Henry Castro (via logerrit) logerrit at kemper.freedesktop.org
Wed Dec 11 02:19:08 UTC 2019


 vcl/source/window/dialog.cxx |   28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

New commits:
commit b7e4b1a27b55dff4792ccd32b0c6658956dcf27a
Author:     Henry Castro <hcastro at collabora.com>
AuthorDate: Tue Dec 10 20:34:51 2019 -0400
Commit:     Henry Castro <hcastro at collabora.com>
CommitDate: Wed Dec 11 03:18:24 2019 +0100

    lok: dialog: check if exists a LOK Window Notifier
    
    When the dialog is about to show, it requires to
    send to client side the "created" message. However,
    in the constructor has already assigned a notifier
    from the parent window.
    
    Change-Id: I1120ad1c1c70449048d6739b8564d1c1f6b1c7e3
    Reviewed-on: https://gerrit.libreoffice.org/84908
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
    Reviewed-by: Henry Castro <hcastro at collabora.com>

diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index a8e5240ec68c..d3710414385b 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -752,18 +752,26 @@ void Dialog::StateChanged( StateChangedType nType )
 {
     if (nType == StateChangedType::InitShow)
     {
-        if (comphelper::LibreOfficeKit::isActive() && !GetLOKNotifier())
+        if (comphelper::LibreOfficeKit::isActive())
         {
-            vcl::ILibreOfficeKitNotifier* pViewShell = mpDialogImpl->m_aInstallLOKNotifierHdl.Call(nullptr);
-            if (pViewShell)
+            std::vector<vcl::LOKPayloadItem> aItems;
+            aItems.emplace_back("type", "dialog");
+            aItems.emplace_back("size", GetSizePixel().toString());
+            if (!GetText().isEmpty())
+                aItems.emplace_back("title", GetText().toUtf8());
+
+            if (const vcl::ILibreOfficeKitNotifier* pNotifier = GetLOKNotifier())
             {
-                SetLOKNotifier(pViewShell);
-                std::vector<vcl::LOKPayloadItem> aItems;
-                aItems.emplace_back("type", "dialog");
-                aItems.emplace_back("size", GetSizePixel().toString());
-                if (!GetText().isEmpty())
-                    aItems.emplace_back("title", GetText().toUtf8());
-                pViewShell->notifyWindow(GetLOKWindowId(), "created", aItems);
+                pNotifier->notifyWindow(GetLOKWindowId(), "created", aItems);
+            }
+            else
+            {
+                vcl::ILibreOfficeKitNotifier* pViewShell = mpDialogImpl->m_aInstallLOKNotifierHdl.Call(nullptr);
+                if (pViewShell)
+                {
+                    SetLOKNotifier(pViewShell);
+                    pViewShell->notifyWindow(GetLOKWindowId(), "created", aItems);
+                }
             }
         }
 


More information about the Libreoffice-commits mailing list