summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-12-24 15:06:15 +0100
committerMiklos Vajna <vmiklos@suse.cz>2012-12-24 15:22:55 +0100
commit4a507f732d82c188ad81b022cbe3037951e58ac3 (patch)
treef05afe92f305d3b44ab75888af0f39fa5f4abac8 /writerfilter
parent9e0dbe9f8c1fa9d2c50895985fe2c374fa9364ac (diff)
fdo#57678 fix import of RTF_PARD between RTF_CELL and RTF_ROW
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx12
1 files changed, 8 insertions, 4 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 4ad99cea78f2..e5f9c29764b5 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -2078,11 +2078,15 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
case RTF_PARD:
if (m_bHadPicture)
dispatchSymbol(RTF_PAR);
- m_aStates.top().aParagraphSprms = m_aDefaultState.aParagraphSprms;
- m_aStates.top().aParagraphAttributes = m_aDefaultState.aParagraphAttributes;
+ // \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)
+ {
+ m_aStates.top().aParagraphSprms = m_aDefaultState.aParagraphSprms;
+ m_aStates.top().aParagraphAttributes = m_aDefaultState.aParagraphAttributes;
+ if (m_aStates.top().nDestinationState != DESTINATION_SHAPETEXT)
+ m_pCurrentBuffer = 0;
+ }
m_aStates.top().resetFrame();
- if (m_aStates.top().nDestinationState != DESTINATION_SHAPETEXT)
- m_pCurrentBuffer = 0;
break;
case RTF_SECTD:
m_aStates.top().aSectionSprms = m_aDefaultState.aSectionSprms;