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>
This commit is contained in:
Pranav Kant
2017-02-03 17:00:51 +05:30
committed by pranavk
parent a296a69c98
commit 5596b3f86f
3 changed files with 19 additions and 11 deletions

View File

@@ -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;

View File

@@ -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()
{

View File

@@ -355,17 +355,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
{
@@ -874,6 +866,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