sw/source/core/inc/flowfrm.hxx    |    2 +-
 sw/source/core/inc/frmtool.hxx    |    3 ++-
 sw/source/core/layout/frmtool.cxx |    4 ++--
 sw/source/uibase/wrtsh/wrtsh1.cxx |    4 ++--
 4 files changed, 7 insertions(+), 6 deletions(-)

New commits:
commit 04ed83114a90f747882ed5d60ef67c321f6b96b9
Author:     Jim Raykowski <[email protected]>
AuthorDate: Thu Dec 18 08:57:10 2025 -0900
Commit:     Xisco Fauli <[email protected]>
CommitDate: Mon Dec 22 12:11:26 2025 +0100

    Outline folding: Make unfolded anchored to frame drawing objects visible
    
    Currently when content is unfolded that has drawing objects anchored 'To
    Frame', excluding fly frame type drawing objects, the drawing object is
    not made visible. This patch is dependent on its parent commit
    dfc0ec48f86b39f7159d0c856fa7d497bea3ea13 made for tdf#90993 - Fix
    anchored objects disappear.
    
    Change-Id: Ie3d413cb3c0302fcc785d0fb459e6ed474b11dc9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195859
    Reviewed-by: Jim Raykowski <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 836135a6f909cddc474e37b38f90103c26936114)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195884
    Reviewed-by: Xisco Fauli <[email protected]>

diff --git a/sw/source/core/inc/flowfrm.hxx b/sw/source/core/inc/flowfrm.hxx
index d24eee68097e..d77009b5b8c7 100644
--- a/sw/source/core/inc/flowfrm.hxx
+++ b/sw/source/core/inc/flowfrm.hxx
@@ -69,7 +69,7 @@ class SAL_DLLPUBLIC_RTTI SAL_LOPLUGIN_ANNOTATE("crosscast") 
SwFlowFrame
     // TableSel is allowed to reset the follow-bit
     friend inline void UnsetFollow( SwFlowFrame *pFlow );
 
-    friend void MakeFrames( SwDoc &, const SwNode &, const SwNode & );
+    friend void MakeFrames(SwDoc&, const SwNode&, const SwNode&, const bool);
 
     friend class SwNode2LayImpl;
 
diff --git a/sw/source/core/inc/frmtool.hxx b/sw/source/core/inc/frmtool.hxx
index 5fffc5494279..ccb8f63c4ef0 100644
--- a/sw/source/core/inc/frmtool.hxx
+++ b/sw/source/core/inc/frmtool.hxx
@@ -141,7 +141,8 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc& rDoc, 
SwNodeOffset nIndex,
                  SwFrame *pPrv = nullptr, sw::FrameMode eMode = 
sw::FrameMode::New);
 
 // Creation of frames for a specific section (uses InsertCnt_)
-void MakeFrames( SwDoc &rDoc, const SwNode &rSttIdx, const SwNode &rEndIdx );
+void MakeFrames(SwDoc& rDoc, const SwNode& rSttIdx, const SwNode& rEndIdx,
+                const bool _bObjsDirect = false);
 
 extern bool bObjsDirect;
 
diff --git a/sw/source/core/layout/frmtool.cxx 
b/sw/source/core/layout/frmtool.cxx
index f226acbc0aa1..3933f9a758bf 100644
--- a/sw/source/core/layout/frmtool.cxx
+++ b/sw/source/core/layout/frmtool.cxx
@@ -2067,9 +2067,9 @@ void InsertCnt_( SwLayoutFrame *pLay, SwDoc& rDoc,
         pLayout->SetCallbackActionEnabled( bOldCallbackActionEnabled );
 }
 
-void MakeFrames( SwDoc& rDoc, const SwNode &rSttIdx, const SwNode &rEndIdx )
+void MakeFrames(SwDoc& rDoc, const SwNode& rSttIdx, const SwNode& rEndIdx, 
const bool _bObjsDirect)
 {
-    bObjsDirect = false;
+    bObjsDirect = _bObjsDirect;
 
     SwNodeOffset nEndIdx = rEndIdx.GetIndex();
     // TODO for multiple layouts there should be a loop here
diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx 
b/sw/source/uibase/wrtsh/wrtsh1.cxx
index aa006d5605e3..614c831d952c 100644
--- a/sw/source/uibase/wrtsh/wrtsh1.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx
@@ -2550,7 +2550,7 @@ void SwWrtShell::MakeOutlineLevelsVisible(const int 
nLevel)
         {
             SwNodeIndex aIdx(*pNode, +1);
             // Make the outline paragraph frame
-            MakeFrames(*GetDoc(), *pNode, aIdx.GetNode());
+            ::MakeFrames(*GetDoc(), *pNode, aIdx.GetNode(), true);
             // Make the outline content visible but don't set the outline 
visible attribute and
             // don't make outline content made visible not visible that have 
outline visible
             // attribute false. Visibility will be taken care of when
@@ -2665,7 +2665,7 @@ void SwWrtShell::MakeOutlineContentVisible(const size_t 
nPos, bool bMakeVisible,
     {
         // reset the index marker and make frames
         aIdx.Assign(*pSttNd, +1);
-        MakeFrames(*GetDoc(), aIdx.GetNode(), *pEndNd);
+        ::MakeFrames(*GetDoc(), aIdx.GetNode(), *pEndNd, true);
 
         if (bSetAttrOutlineVisibility)
         {

Reply via email to