desktop/source/lib/init.cxx               |   18 +++++++++++++++++-
 include/LibreOfficeKit/LibreOfficeKit.h   |    5 +++++
 include/LibreOfficeKit/LibreOfficeKit.hxx |   11 +++++++++++
 3 files changed, 33 insertions(+), 1 deletion(-)

New commits:
commit dea03310cc257514ceaabc732461e9e976ba60ed
Author:     Henry Castro <hcas...@collabora.com>
AuthorDate: Fri Dec 25 17:30:42 2020 -0400
Commit:     Tor Lillqvist <t...@collabora.com>
CommitDate: Mon Apr 5 14:31:48 2021 +0200

    lok: add lo_sendDialogEvent to post dialog events
    
    When the "Macro Security Warning" is shown in client side,
    the model/view/controller are not created yet. It is necessary
    to create a function to posts a dialog event.
    
    Change-Id: I2bfc9edecc708dc79da575ea515e3144e78c10e2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108293
    Tested-by: Jenkins
    Reviewed-by: Henry Castro <hcas...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/108678
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113599
    Tested-by: Tor Lillqvist <t...@collabora.com>
    Reviewed-by: Tor Lillqvist <t...@collabora.com>

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index a302b5d46f76..6c4be59af5d6 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -2087,6 +2087,10 @@ static void lo_runLoop(LibreOfficeKit* pThis,
                        LibreOfficeKitWakeCallback pWakeCallback,
                        void* pData);
 
+static void lo_sendDialogEvent(LibreOfficeKit* pThis,
+                               unsigned long long int nLOKWindowId,
+                               const char* pArguments);
+
 LibLibreOffice_Impl::LibLibreOffice_Impl()
     : m_pOfficeClass( gOfficeClass.lock() )
     , maThread(nullptr)
@@ -2111,6 +2115,7 @@ LibLibreOffice_Impl::LibLibreOffice_Impl()
         m_pOfficeClass->runMacro = lo_runMacro;
         m_pOfficeClass->signDocument = lo_signDocument;
         m_pOfficeClass->runLoop = lo_runLoop;
+        m_pOfficeClass->sendDialogEvent = lo_sendDialogEvent;
 
         gOfficeClass = m_pOfficeClass;
     }
@@ -3710,7 +3715,7 @@ public:
 
 } // anonymous namespace
 
-static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned 
long long int nWindowId, const char* pArguments)
+static void lcl_sendDialogEvent(unsigned long long int nWindowId, const char* 
pArguments)
 {
     SolarMutexGuard aGuard;
 
@@ -3793,6 +3798,17 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* 
/*pThis*/, unsigned long
         pWindow->Resize();
 }
 
+
+static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned 
long long int nWindowId, const char* pArguments)
+{
+    lcl_sendDialogEvent(nWindowId, pArguments);
+}
+
+static void lo_sendDialogEvent(LibreOfficeKit* /*pThis*/, unsigned long long 
int nWindowId, const char* pArguments)
+{
+    lcl_sendDialogEvent(nWindowId, pArguments);
+}
+
 static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* 
pCommand, const char* pArguments, bool bNotifyWhenFinished)
 {
     comphelper::ProfileZone aZone("doc_postUnoCommand");
diff --git a/include/LibreOfficeKit/LibreOfficeKit.h 
b/include/LibreOfficeKit/LibreOfficeKit.h
index f4244def5a6b..2279260d0e90 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.h
+++ b/include/LibreOfficeKit/LibreOfficeKit.h
@@ -110,6 +110,11 @@ struct _LibreOfficeKitClass
                      LibreOfficeKitPollCallback pPollCallback,
                      LibreOfficeKitWakeCallback pWakeCallback,
                      void* pData);
+
+    /// @see lok::Office::sendDialogEvent
+    void (*sendDialogEvent) (LibreOfficeKit* pThis,
+                            unsigned long long int nLOKWindowId,
+                            const char* pArguments);
 };
 
 #define LIBREOFFICEKIT_DOCUMENT_HAS(pDoc,member) 
LIBREOFFICEKIT_HAS_MEMBER(LibreOfficeKitDocumentClass,member,(pDoc)->pClass->nSize)
diff --git a/include/LibreOfficeKit/LibreOfficeKit.hxx 
b/include/LibreOfficeKit/LibreOfficeKit.hxx
index 23b79c742c09..962270452e20 100644
--- a/include/LibreOfficeKit/LibreOfficeKit.hxx
+++ b/include/LibreOfficeKit/LibreOfficeKit.hxx
@@ -979,6 +979,17 @@ public:
     {
         mpThis->pClass->runLoop(mpThis, pPollCallback, pWakeCallback, pData);
     }
+
+    /**
+     * Posts a dialog event for the window with given id
+     *
+     * @param nWindowId id of the window to notify
+     * @param pArguments arguments of the event.
+     */
+    void sendDialogEvent(unsigned long long int nWindowId, const char* 
pArguments = NULL)
+    {
+        mpThis->pClass->sendDialogEvent(mpThis, nWindowId, pArguments);
+    }
 };
 
 /// Factory method to create a lok::Office instance.
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to