sw/inc/PostItMgr.hxx                 |    2 +
 sw/source/uibase/docvw/PostItMgr.cxx |   40 +++++++++++++++++++++--------------
 2 files changed, 26 insertions(+), 16 deletions(-)

New commits:
commit 3d071fcde498e7c89ddef163f153400da0470199
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed May 22 11:13:12 2024 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Thu May 23 09:16:07 2024 +0200

    split a piece of code out as a standalone GetOrCreateAnnotationWindow
    
    Change-Id: I674d96976f265eeac719ed06a657af07aaae2325
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167954
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Pranam Lashkari <lpra...@collabora.com>

diff --git a/sw/inc/PostItMgr.hxx b/sw/inc/PostItMgr.hxx
index 98d9f4f2ef30..f66e38748a64 100644
--- a/sw/inc/PostItMgr.hxx
+++ b/sw/inc/PostItMgr.hxx
@@ -172,6 +172,8 @@ class SAL_DLLPUBLIC_RTTI SwPostItMgr final : public 
SfxListener
         SwSidebarItem*  InsertItem( SfxBroadcaster* pItem, bool 
bCheckExistence, bool bFocus);
         void            RemoveItem( SfxBroadcaster* pBroadcast );
 
+        VclPtr<sw::annotation::SwAnnotationWin> 
GetOrCreateAnnotationWindow(SwSidebarItem& rItem);
+
     public:
         SwPostItMgr(SwView* aDoc);
         virtual ~SwPostItMgr() override;
diff --git a/sw/source/uibase/docvw/PostItMgr.cxx 
b/sw/source/uibase/docvw/PostItMgr.cxx
index d9eaa7fa324a..0b74e9902f0b 100644
--- a/sw/source/uibase/docvw/PostItMgr.cxx
+++ b/sw/source/uibase/docvw/PostItMgr.cxx
@@ -698,6 +698,28 @@ void SwPostItMgr::PreparePageContainer()
     }
 }
 
+VclPtr<SwAnnotationWin> 
SwPostItMgr::GetOrCreateAnnotationWindow(SwSidebarItem& rItem)
+{
+    VclPtr<SwAnnotationWin> pPostIt = rItem.mpPostIt;
+    if (!pPostIt)
+    {
+        pPostIt = rItem.GetSidebarWindow( mpView->GetEditWin(),
+                                          *this );
+        pPostIt->InitControls();
+        pPostIt->SetReadonly(mbReadOnly);
+        rItem.mpPostIt = pPostIt;
+        if (mpAnswer)
+        {
+            if (pPostIt->GetPostItField()->GetParentPostItId() != 0) //do we 
really have another note in front of this one
+            {
+                pPostIt->InitAnswer(*mpAnswer);
+            }
+            mpAnswer.reset();
+        }
+    }
+    return rItem.mpPostIt;
+}
+
 void SwPostItMgr::LayoutPostIts()
 {
     const bool bLoKitActive = comphelper::LibreOfficeKit::isActive();
@@ -727,24 +749,9 @@ void SwPostItMgr::LayoutPostIts()
 
                 for (auto const& pItem : pPage->mvSidebarItems)
                 {
-                    VclPtr<SwAnnotationWin> pPostIt = pItem->mpPostIt;
-
                     if (pItem->mbShow)
                     {
-                        if (!pPostIt)
-                        {
-                            pPostIt = pItem->GetSidebarWindow( 
mpView->GetEditWin(),
-                                                              *this );
-                            pPostIt->InitControls();
-                            pPostIt->SetReadonly(mbReadOnly);
-                            pItem->mpPostIt = pPostIt;
-                            if (mpAnswer)
-                            {
-                                if 
(pPostIt->GetPostItField()->GetParentPostItId() != 0) //do we really have 
another note in front of this one
-                                    pPostIt->InitAnswer(*mpAnswer);
-                                mpAnswer.reset();
-                            }
-                        }
+                        VclPtr<SwAnnotationWin> pPostIt = 
GetOrCreateAnnotationWindow(*pItem);
 
                         pPostIt->SetChangeTracking(
                             pItem->mLayoutStatus,
@@ -811,6 +818,7 @@ void SwPostItMgr::LayoutPostIts()
                     }
                     else // we don't want to see it
                     {
+                        VclPtr<SwAnnotationWin> pPostIt = pItem->mpPostIt;
                         if (pPostIt)
                             pPostIt->HideNote();
                     }

Reply via email to