diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2013-03-22 11:08:12 +0100 |
---|---|---|
committer | Fridrich Strba <fridrich@documentfoundation.org> | 2013-03-22 15:53:30 +0000 |
commit | cd8de6c4138d227a48d01b05212f5aaf53b67aab (patch) | |
tree | fd3329ece603a2b8fc992f8d9819697e6dca90e5 /writerfilter | |
parent | 110253379015ec0cbb2bbaf99fde9e2c546f8d06 (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
(cherry picked from commit 24d5261f5a122e22675210445056cdf67663237b)
Reviewed-on: https://gerrit.libreoffice.org/2906
Reviewed-by: Fridrich Strba <fridrich@documentfoundation.org>
Tested-by: Fridrich Strba <fridrich@documentfoundation.org>
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index 34b779d8ba6d..3f18695d7b39 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2172,11 +2172,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: |