[Libreoffice-commits] core.git: desktop/source ios/LibreOfficeLight
Jon Nermut
jon.nermut at asdeqlabs.com
Thu Jan 18 10:52:10 UTC 2018
desktop/source/lib/init.cxx | 18 ++++++++++
ios/LibreOfficeLight/LibreOfficeLight/LOKit/Document.swift | 6 +++
ios/LibreOfficeLight/LibreOfficeLight/LOKit/LOKitThread.swift | 10 +++++
ios/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h | 2 +
4 files changed, 36 insertions(+)
New commits:
commit 0c6cfea81e99a815c35b1a0e908a29bc6dc424f1
Author: Jon Nermut <jon.nermut at asdeqlabs.com>
Date: Thu Jan 18 20:38:00 2018 +1100
iOS: add a temporarily exposed function that calls CallbackFlushHandler::Invoke in order to manually flush the callback queue. To be reverted once the callback problem is solved.
Change-Id: I95273b8a01eec62f639edd6767f69e02a294d8aa
Reviewed-on: https://gerrit.libreoffice.org/48101
Reviewed-by: jan iversen <jani at libreoffice.org>
Tested-by: jan iversen <jani at libreoffice.org>
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 5688dab671f6..db8a5c5142c9 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -3802,4 +3802,22 @@ static void lo_destroy(LibreOfficeKit* pThis)
}
+#ifdef IOS
+extern "C"
+{
+__attribute__((visibility("default")))
+{
+ SolarMutexGuard aGuard;
+ LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis);
+
+ int nOrigViewId = doc_getView(pThis);
+
+ if (nOrigViewId >= 0 && pDocument->mpCallbackFlushHandlers[nOrigViewId])
+ {
+ pDocument->mpCallbackFlushHandlers[nOrigViewId]->Invoke();
+ }
+}
+}
+#endif
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/ios/LibreOfficeLight/LibreOfficeLight/LOKit/Document.swift b/ios/LibreOfficeLight/LibreOfficeLight/LOKit/Document.swift
index f708334f5c97..79e28d674595 100644
--- a/ios/LibreOfficeLight/LibreOfficeLight/LOKit/Document.swift
+++ b/ios/LibreOfficeLight/LibreOfficeLight/LOKit/Document.swift
@@ -536,6 +536,12 @@ open class Document
{
docClass.setViewLanguage(pDoc, id, language);
}
+
+ public func invokeHandlers()
+ {
+ temporaryHackToInvokeCallbackHandlers(pDoc)
+
+ }
}
diff --git a/ios/LibreOfficeLight/LibreOfficeLight/LOKit/LOKitThread.swift b/ios/LibreOfficeLight/LibreOfficeLight/LOKit/LOKitThread.swift
index 314ef0355f3f..e8f60e0f2119 100644
--- a/ios/LibreOfficeLight/LibreOfficeLight/LOKit/LOKitThread.swift
+++ b/ios/LibreOfficeLight/LibreOfficeLight/LOKit/LOKitThread.swift
@@ -212,6 +212,15 @@ public class DocumentHolder
{
closure(self.doc)
}
+ self.invokeHandlers()
+ }
+
+ public func invokeHandlers()
+ {
+ LOKitThread.instance.async
+ {
+ self.doc.invokeHandlers()
+ }
}
/// Gives sync access to the document - blocks until the closure runs.
@@ -220,6 +229,7 @@ public class DocumentHolder
{
return LOKitThread.instance.sync
{
+ self.invokeHandlers()
return closure(self.doc)
}
}
diff --git a/ios/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h b/ios/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h
index bc276e9d31e2..67feadb801f3 100644
--- a/ios/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h
+++ b/ios/LibreOfficeLight/LibreOfficeLight/lokit-Bridging-Header.h
@@ -12,3 +12,5 @@
// as its own xCode project.
#define LOK_USE_UNSTABLE_API
#import "../../source/LibreOfficeKit.h"
+
+void temporaryHackToInvokeCallbackHandlers(LibreOfficeKitDocument* pThis);
More information about the Libreoffice-commits
mailing list