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

Tor Lillqvist (via logerrit) logerrit at kemper.freedesktop.org
Tue May 14 11:14:59 UTC 2019


 desktop/source/lib/init.cxx |   15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

New commits:
commit 3f329e4a3cb7c43927e75b8c359e58d16716a8dd
Author:     Tor Lillqvist <tml at collabora.com>
AuthorDate: Tue May 14 10:20:50 2019 +0300
Commit:     Tor Lillqvist <tml at collabora.com>
CommitDate: Tue May 14 14:13:28 2019 +0300

    We apparently need to drop the Solar Mutex when exiting lo_runLoop() on iOS
    
    It seems to be held after soffice_main() returns for the first
    document opened, but not subsequent ones, for some reason. So acquire
    it an extra time to be able to use Application::ReleaseSolarMutex()...
    
    Without this, when opening a subsequent document, the loleaflet
    loading progress bar just hangs.
    
    Change-Id: I4e4e7b814f0dba836b790b6f68470aab54f8bbb9

diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index 902dceb64f31..b4d93861b0bd 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -4711,13 +4711,20 @@ static void lo_runLoop(LibreOfficeKit* /*pThis*/,
 {
 #ifdef IOS // Maybe ANDROID, too?
     InitVCL();
+    Application::GetSolarMutex().acquire();
 #endif
 
-    SolarMutexGuard aGuard;
+    {
+        SolarMutexGuard aGuard;
 
-    vcl::lok::registerPollCallbacks(pPollCallback, pWakeCallback, pData);
-    Application::UpdateMainThread();
-    soffice_main();
+        vcl::lok::registerPollCallbacks(pPollCallback, pWakeCallback, pData);
+        Application::UpdateMainThread();
+        soffice_main();
+    }
+#ifdef IOS // ANDROID, too?
+    vcl::lok::unregisterPollCallbacks();
+    Application::ReleaseSolarMutex();
+#endif
 }
 
 static bool bInitialized = false;


More information about the Libreoffice-commits mailing list