diff options
author | Pranav Kant <pranavk@collabora.co.uk> | 2017-11-30 01:22:33 +0530 |
---|---|---|
committer | Pranav Kant <pranavk@collabora.co.uk> | 2017-12-04 22:11:16 +0530 |
commit | d2106ef4d506cd49bf7905493fa4aae33df5c611 (patch) | |
tree | ef888712c44bc6c7c8884e3357d880c1dfa7ae26 | |
parent | ddc0f69ca4a016ed5b6e749c01d6362c9a4d9014 (diff) |
lokdialog: Execute all UNO commands asynchronously for LOK
Especially in case of dialogs, Online cannot afford to wait till the
call to UNO command returns as the same thread is responsible for doing
many more tasks as well.
And just adding this check doesn't seem to have any repurcussions, so I
guess we are fine.
Change-Id: Iac7c1413d90e8a264502dcf2bc280e09fd52683b
Reviewed-on: https://gerrit.libreoffice.org/45527
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r-- | desktop/qa/desktop_lib/test_desktop_lib.cxx | 2 | ||||
-rw-r--r-- | desktop/source/lib/init.cxx | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/desktop/qa/desktop_lib/test_desktop_lib.cxx b/desktop/qa/desktop_lib/test_desktop_lib.cxx index 2a995277081a..81a9f11e7eb5 100644 --- a/desktop/qa/desktop_lib/test_desktop_lib.cxx +++ b/desktop/qa/desktop_lib/test_desktop_lib.cxx @@ -529,6 +529,7 @@ void DesktopLOKTest::testPasteWriter() CPPUNIT_ASSERT(pDocument->pClass->paste(pDocument, "text/plain;charset=utf-8", aText.getStr(), aText.getLength())); pDocument->pClass->postUnoCommand(pDocument, ".uno:SelectAll", nullptr, false); + Scheduler::ProcessEventsToIdle(); char* pText = pDocument->pClass->getTextSelection(pDocument, "text/plain;charset=utf-8", nullptr); CPPUNIT_ASSERT_EQUAL(OString("hello"), OString(pText)); free(pText); @@ -902,6 +903,7 @@ void DesktopLOKTest::testSheetOperations() pDocument->pClass->postUnoCommand(pDocument, ".uno:Remove", "{ \"Index\": { \"type\": \"long\", \"value\": 3 } }", false); + Scheduler::ProcessEventsToIdle(); CPPUNIT_ASSERT_EQUAL(pDocument->pClass->getParts(pDocument), 6); std::vector<OString> aExpected = { "FirstSheet", "Renamed", "Sheet3", "Sheet4", "Sheet5", "LastSheet" }; diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx index 8efc5f2aff02..b5bc0f56a845 100644 --- a/desktop/source/lib/init.cxx +++ b/desktop/source/lib/init.cxx @@ -2319,6 +2319,12 @@ static void doc_postUnoCommand(LibreOfficeKitDocument* pThis, const char* pComma LibLODocument_Impl* pDocument = static_cast<LibLODocument_Impl*>(pThis); std::vector<beans::PropertyValue> aPropertyValuesVector(jsonToPropertyValuesVector(pArguments)); + + beans::PropertyValue aSynchronMode; + aSynchronMode.Name = "SynchronMode"; + aSynchronMode.Value <<= false; + aPropertyValuesVector.push_back(aSynchronMode); + int nView = SfxLokHelper::getView(); if (nView < 0) return; |