loolwsd/ChildSession.cpp | 1 + loolwsd/LOOLKit.cpp | 1 + loolwsd/LibreOfficeKit.hpp | 11 +++++++++++ loolwsd/bundled/include/LibreOfficeKit/LibreOfficeKit.h | 5 +++++ 4 files changed, 18 insertions(+)
New commits: commit ed983f17cbf2627ff7b1b1a04af03449bd18ff6b Author: Marco Cecchetti <marco.cecche...@collabora.com> Date: Sat Sep 10 21:07:12 2016 +0200 loolwsd: we use callbacks latch for not missing messages sent very early - lok::Document::setCallbackLatch: used on doument loading for set/unset the latch - now cell cursors of other views are correctly notified to the new view diff --git a/loolwsd/ChildSession.cpp b/loolwsd/ChildSession.cpp index 93a2312..9c3e3dc 100644 --- a/loolwsd/ChildSession.cpp +++ b/loolwsd/ChildSession.cpp @@ -356,6 +356,7 @@ bool ChildSession::loadDocument(const char * /*buffer*/, int /*length*/, StringT // Inform this view of other views _docManager.notifyCurrentViewOfOtherViews(getId()); + _loKitDocument->setCallbackLatch(false); Log::info("Loaded session " + getId()); return true; diff --git a/loolwsd/LOOLKit.cpp b/loolwsd/LOOLKit.cpp index 94c0846..94d02ef 100644 --- a/loolwsd/LOOLKit.cpp +++ b/loolwsd/LOOLKit.cpp @@ -1139,6 +1139,7 @@ private: _viewIdToCallbackDescr.emplace(viewId, std::unique_ptr<CallbackDescriptor>(new CallbackDescriptor({ this, viewId }))); _loKitDocument->registerCallback(ViewCallback, _viewIdToCallbackDescr[viewId].get()); + _loKitDocument->setCallbackLatch(true); Log::info() << "Document [" << _url << "] view [" << viewId << "] loaded, leaving " diff --git a/loolwsd/LibreOfficeKit.hpp b/loolwsd/LibreOfficeKit.hpp index 5881c77..d718edd 100644 --- a/loolwsd/LibreOfficeKit.hpp +++ b/loolwsd/LibreOfficeKit.hpp @@ -464,6 +464,17 @@ public: nTileWidth, nTileHeight); } + /** + * Enable/disable callbacks latch. LOK will set the latch when it wants to + * queue new callbacks but not flush them. + * + * @param bCallbackLatch: true enables the latch, false disables it. + */ + inline void setCallbackLatch(bool bCallbackLatch) + { + _pDoc->pClass->setCallbackLatch(_pDoc, bCallbackLatch); + } + #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY }; diff --git a/loolwsd/bundled/include/LibreOfficeKit/LibreOfficeKit.h b/loolwsd/bundled/include/LibreOfficeKit/LibreOfficeKit.h index 81d65c1..6a8388d 100644 --- a/loolwsd/bundled/include/LibreOfficeKit/LibreOfficeKit.h +++ b/loolwsd/bundled/include/LibreOfficeKit/LibreOfficeKit.h @@ -244,6 +244,11 @@ struct _LibreOfficeKitDocumentClass const int nTileWidth, const int nTileHeight); + + /// @see lok::Document::setCallbackLatch(). + void (*setCallbackLatch) (LibreOfficeKitDocument* pThis, + bool bCallbackLatch); + #endif // defined LOK_USE_UNSTABLE_API || defined LIBO_INTERNAL_ONLY }; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits