sw/source/filter/ww8/docxattributeoutput.cxx |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

New commits:
commit 1f6bb28c988c9b03e78180c30ca8fb25d18b593b
Author:     Michael Stahl <michael.st...@cib.de>
AuthorDate: Fri Jul 10 19:29:27 2020 +0200
Commit:     Gabor Kelemen <kelemen.gab...@nisz.hu>
CommitDate: Sun Sep 13 23:35:54 2020 +0200

    tdf#134618 sw: DOCX export: fix order of as-char and at-char fly...
    
    ...at same position.
    
    The problem is that in this case the as-char fly was written before the
    at-char fly but the positioning of the at-char fly can be relative to
    its character position, i.e. before the as-char fly.
    
    Apparently as-char flys are written in
    DocxAttributeOutput::EndRunProperties() via WritePostponedDMLDrawing(),
    wheras at-char flys are written earlier, in SwWW8AttrIter::OutFlys() via
    DocxAttributeOutput::OutputFlyFrame_Impl().
    
    So this undoes the swap that these undergo via the magic of the mark
    stack.
    
    Change-Id: I83a72bb2affbf321fc4dea4e7fb37bdb43cea2e7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98543
    Tested-by: Jenkins
    Reviewed-by: Michael Stahl <michael.st...@cib.de>
    (cherry picked from commit 7b156d37cfc92292323694ec064fe51ae57b3257)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98633
    Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de>
    (cherry picked from commit d449d92b8f1b8c6b572acfd80efe42a875059faf)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102571
    Tested-by: Gabor Kelemen <kelemen.gab...@nisz.hu>
    Reviewed-by: Gabor Kelemen <kelemen.gab...@nisz.hu>

diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx 
b/sw/source/filter/ww8/docxattributeoutput.cxx
index 825189c8ccd6..bc01bc3d5c6f 100644
--- a/sw/source/filter/ww8/docxattributeoutput.cxx
+++ b/sw/source/filter/ww8/docxattributeoutput.cxx
@@ -2668,6 +2668,10 @@ void DocxAttributeOutput::EndRunProperties( const 
SwRedlineData* pRedlineData )
     // write footnotes/endnotes if we have any
     FootnoteEndnoteReference();
 
+    // merge the properties _before_ the run text (strictly speaking, just
+    // after the start of the run)
+    m_pSerializer->mergeTopMarks(Tag_StartRunProperties, 
sax_fastparser::MergeMarks::PREPEND);
+
     WritePostponedGraphic();
 
     WritePostponedDiagram();
@@ -2680,10 +2684,6 @@ void DocxAttributeOutput::EndRunProperties( const 
SwRedlineData* pRedlineData )
     WritePostponedOLE();
 
     WritePostponedActiveXControl(true);
-
-    // merge the properties _before_ the run text (strictly speaking, just
-    // after the start of the run)
-    m_pSerializer->mergeTopMarks(Tag_StartRunProperties, 
sax_fastparser::MergeMarks::PREPEND);
 }
 
 void DocxAttributeOutput::GetSdtEndBefore(const SdrObject* pSdrObj)
@@ -5793,7 +5793,7 @@ void DocxAttributeOutput::OutputFlyFrame_Impl( const 
ww8::Frame &rFrame, const P
             break;
     }
 
-    m_pSerializer->mergeTopMarks(Tag_OutputFlyFrame, 
sax_fastparser::MergeMarks::POSTPONE);
+    m_pSerializer->mergeTopMarks(Tag_OutputFlyFrame);
 }
 
 void DocxAttributeOutput::WriteOutliner(const OutlinerParaObject& rParaObj)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to