summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPranav Kant <pranavk@collabora.co.uk>2017-11-30 01:22:33 +0530
committerPranav Kant <pranavk@collabora.co.uk>2017-12-04 22:11:16 +0530
commitd2106ef4d506cd49bf7905493fa4aae33df5c611 (patch)
treeef888712c44bc6c7c8884e3357d880c1dfa7ae26
parentddc0f69ca4a016ed5b6e749c01d6362c9a4d9014 (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.cxx2
-rw-r--r--desktop/source/lib/init.cxx6
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;