sw/source/filter/ww8/ww8graf.cxx |   16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

New commits:
commit ce8a9ce6a1890b28c12ff0826d6808aad0bbccb2
Author:     Caolán McNamara <[email protected]>
AuthorDate: Wed Oct 7 16:05:49 2020 +0100
Commit:     Caolán McNamara <[email protected]>
CommitDate: Wed Oct 7 20:24:31 2020 +0200

    tdf#137295 missing frames on roundtrip through docx
    
    because they had the same name because GetUniqueDrawObjectName returned the
    same name twice because the drawing objects were replaced by flys so there 
was
    no actual drawing objects inserted
    
    Change-Id: Icbe1848b7115c441f8205b8f566ec5ae4b0c55a6
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104063
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <[email protected]>

diff --git a/sw/source/filter/ww8/ww8graf.cxx b/sw/source/filter/ww8/ww8graf.cxx
index 3b24423abce6..74a7e880829e 100644
--- a/sw/source/filter/ww8/ww8graf.cxx
+++ b/sw/source/filter/ww8/ww8graf.cxx
@@ -2750,6 +2750,9 @@ SwFrameFormat* SwWW8ImplReader::Read_GrafLayer( long 
nGrafAnchorCp )
 
     OUString aObjName = pObject->GetName();
 
+    bool bDrawObj = false;
+    bool bFrame = false;
+
     SwFrameFormat* pRetFrameFormat = nullptr;
     if (bReplaceable)
     {
@@ -2759,6 +2762,8 @@ SwFrameFormat* SwWW8ImplReader::Read_GrafLayer( long 
nGrafAnchorCp )
     }
     else
     {
+        bDrawObj = true;
+
         // Drawing objects, (e.g. ovals or drawing groups)
         if (pF->bRcaSimple)
         {
@@ -2774,7 +2779,11 @@ SwFrameFormat* SwWW8ImplReader::Read_GrafLayer( long 
nGrafAnchorCp )
             pRetFrameFormat = ConvertDrawTextToFly(pObject, pOurNewObject, 
pRecord,
                 eAnchor, pF, aFlySet);
             if (pRetFrameFormat)
+            {
                 bDone = true;
+                bDrawObj = false;
+                bFrame = true;
+            }
         }
 
         if (!bDone)
@@ -2830,7 +2839,12 @@ SwFrameFormat* SwWW8ImplReader::Read_GrafLayer( long 
nGrafAnchorCp )
         if (!aObjName.isEmpty())
             pRetFrameFormat->SetName( aObjName );
         if (pRetFrameFormat->GetName().isEmpty())
-            pRetFrameFormat->SetName(m_rDoc.GetUniqueDrawObjectName());
+        {
+            if (bDrawObj)
+                pRetFrameFormat->SetName(m_rDoc.GetUniqueDrawObjectName());
+            else if (bFrame)
+                pRetFrameFormat->SetName(m_rDoc.GetUniqueFrameName());
+        }
     }
     return AddAutoAnchor(pRetFrameFormat);
 }
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to