summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-03-22 11:08:12 +0100
committerMiklos Vajna <vmiklos@suse.cz>2013-03-22 11:48:02 +0100
commit24d5261f5a122e22675210445056cdf67663237b (patch)
tree7fbdacb30ec43502a1e123d8083e8667ebae9134 /writerfilter
parentcc8e169d6cddc081e2a8b5249f34169c0e41d7d3 (diff)
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. Change-Id: I5cbb1df72bf1211f85ef69ab64d5b46cbce5c742
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx9
1 files changed, 9 insertions, 0 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 4fbb6cc7f657..47d2af1a8475 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2173,11 +2173,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: