diff options
author | Pranav Kant <pranavk@collabora.co.uk> | 2017-02-03 17:00:51 +0530 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2017-02-18 00:53:14 +0100 |
commit | cff06958fbd04f546d2448b2b6f54c6f66e6f06a (patch) | |
tree | ffb6211dd5b7e9154afe1a2853fdcdb113401cdd /sw | |
parent | 3ce4cb99c71849c0e1366f655077b25d820baaf3 (diff) |
lok: comments: emit add callback after layout finishes
Change-Id: Ie6eba244dd5eb78813185f8c7aceed841d05d48b
Reviewed-on: https://gerrit.libreoffice.org/33877
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: pranavk <pranavk@collabora.co.uk>
(cherry picked from commit 5596b3f86f753b7ae0a262ccea84c6a61bdc9ca2)
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/SidebarWin.hxx | 1 | ||||
-rw-r--r-- | sw/inc/postithelper.hxx | 2 | ||||
-rw-r--r-- | sw/source/uibase/docvw/PostItMgr.cxx | 27 |
3 files changed, 19 insertions, 11 deletions
diff --git a/sw/inc/SidebarWin.hxx b/sw/inc/SidebarWin.hxx index 4d114b8dfd58..de109fb4b5c4 100644 --- a/sw/inc/SidebarWin.hxx +++ b/sw/inc/SidebarWin.hxx @@ -84,6 +84,7 @@ class SwSidebarWin : public vcl::Window inline const SwRect& GetAnchorRect() { return mAnchorRect; } inline const std::vector<basegfx::B2DRange>& GetAnnotationTextRanges() { return maAnnotationTextRanges; } SwEditWin& EditWin(); + inline SwSidebarItem& GetSidebarItem() { return mrSidebarItem; } inline OutlinerView* GetOutlinerView() { return mpOutlinerView;} bool HasScrollbar() const; diff --git a/sw/inc/postithelper.hxx b/sw/inc/postithelper.hxx index 0c9fe92da682..73d3cfe7a172 100644 --- a/sw/inc/postithelper.hxx +++ b/sw/inc/postithelper.hxx @@ -92,6 +92,7 @@ public: VclPtr<sw::sidebarwindows::SwSidebarWin> pPostIt; bool bShow; bool bFocus; + bool bPendingLayout; SwPostItHelper::SwLayoutStatus mLayoutStatus; SwLayoutInfo maLayoutInfo; @@ -100,6 +101,7 @@ public: : pPostIt(nullptr) , bShow(true) , bFocus(aFocus) + , bPendingLayout(false) , mLayoutStatus( SwPostItHelper::INVISIBLE ) , maLayoutInfo() { diff --git a/sw/source/uibase/docvw/PostItMgr.cxx b/sw/source/uibase/docvw/PostItMgr.cxx index 80332abad12f..3c87288e1bc3 100644 --- a/sw/source/uibase/docvw/PostItMgr.cxx +++ b/sw/source/uibase/docvw/PostItMgr.cxx @@ -357,17 +357,9 @@ void SwPostItMgr::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) if (bEmpty && !mvPostItFields.empty()) PrepareView(true); - // If LOK has disabled tiled annotations, emit annotation callbacks - if (comphelper::LibreOfficeKit::isActive() && !comphelper::LibreOfficeKit::isTiledAnnotations()) - { - CalcRects(); - Show(); - - if (pItem && pItem->pPostIt) - { - lcl_CommentNotification(mpView, CommentNotificationType::Add, pItem, 0); - } - } + // True until the layout of this post it finishes + if (pItem) + pItem->bPendingLayout = true; } else { @@ -875,6 +867,19 @@ void SwPostItMgr::LayoutPostIts() pPage->bScrollbar = false; bUpdate = (bOldScrollbar != pPage->bScrollbar) || bUpdate; } + + for(SwSidebarWin_iterator i = aVisiblePostItList.begin(); i != aVisiblePostItList.end() ; ++i) + { + if (comphelper::LibreOfficeKit::isActive() && !comphelper::LibreOfficeKit::isTiledAnnotations()) + { + if ((*i)->GetSidebarItem().bPendingLayout) + lcl_CommentNotification(mpView, CommentNotificationType::Add, &(*i)->GetSidebarItem(), 0); + } + + // Layout for this post it finished now + (*i)->GetSidebarItem().bPendingLayout = false; + } + aVisiblePostItList.clear(); } else |