writerfilter/source/rtftok/rtfdocumentimpl.cxx |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit 562de768b5e80dd7d73302ad8307e1d7a734ec1c
Author: Miklos Vajna <[email protected]>
Date:   Fri Mar 22 11:08:12 2013 +0100

    fdo#62288 fix RTF import of table paragraph margins
    
    Regression from 4a507f732d82c188ad81b022cbe3037951e58ac3. The problem
    was that in some cases \pard can't reset all paragraph properties. The
    original commit just made this keyword a noop when it occurred between
    \cell and \row, but this is too much. At least margins do need
    resetting.
    
    (cherry picked from commit 24d5261f5a122e22675210445056cdf67663237b)
    
    Change-Id: I5cbb1df72bf1211f85ef69ab64d5b46cbce5c742
    Reviewed-on: https://gerrit.libreoffice.org/3572
    Reviewed-by: Fridrich Strba <[email protected]>
    Tested-by: Fridrich Strba <[email protected]>

diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx 
b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index a7677d1..8deabf7 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -1937,11 +1937,20 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
             // \pard is allowed between \cell and \row, but in that case it 
should not reset the fact that we're inside a table.
             if (m_aStates.top().nCells == 0)
             {
+                // Reset everything.
                 m_aStates.top().aParagraphSprms = 
m_aDefaultState.aParagraphSprms;
                 m_aStates.top().aParagraphAttributes = 
m_aDefaultState.aParagraphAttributes;
                 if (m_aStates.top().nDestinationState != DESTINATION_SHAPETEXT)
                     m_pCurrentBuffer = 0;
             }
+            else
+            {
+                // Reset only margins.
+                lcl_eraseNestedAttribute(m_aStates.top().aParagraphSprms, 
NS_ooxml::LN_CT_PPrBase_spacing, NS_ooxml::LN_CT_Spacing_before);
+                lcl_eraseNestedAttribute(m_aStates.top().aParagraphSprms, 
NS_ooxml::LN_CT_PPrBase_spacing, NS_ooxml::LN_CT_Spacing_after);
+                m_aStates.top().aParagraphSprms.erase(NS_sprm::LN_PDxaLeft);
+                m_aStates.top().aParagraphSprms.erase(NS_sprm::LN_PDxaRight);
+            }
             m_aStates.top().resetFrame();
             break;
         case RTF_SECTD:
_______________________________________________
Libreoffice-commits mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to