summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-12-23 14:37:59 +0100
committerMiklos Vajna <vmiklos@suse.cz>2012-12-23 15:48:32 +0100
commit07c80d23fadcc2334fe7c6f9ce7b5dafeb88d623 (patch)
tree731bc0f214368b0eb5c4e6237a4b990d8b6c823d /writerfilter
parent68aecf0dd81b6660e78e8dd758ec9431727f4f0b (diff)
fdo#58076 fix import of RTF page margins vs partial section props
The problem was that \sbknone (being a section property) triggered creating a section, but the document doesn't have multiple sections. Make sure we don't send section properties as long as no \sect control words present.
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx6
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.hxx2
2 files changed, 6 insertions, 2 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index da26efdd983c..4ad99cea78f2 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -276,7 +276,8 @@ RTFDocumentImpl::RTFDocumentImpl(uno::Reference<uno::XComponentContext> const& x
m_bIgnoreNextContSectBreak(false),
m_bNeedSect(true),
m_bWasInFrame(false),
- m_bHadPicture(false)
+ m_bHadPicture(false),
+ m_bHadSect(false)
{
OSL_ASSERT(xInputStream.is());
m_pInStream.reset(utl::UcbStreamHelper::CreateStream(xInputStream, sal_True));
@@ -527,7 +528,7 @@ void RTFDocumentImpl::sectBreak(bool bFinal = false)
// Normally a section break at the end of the doc is necessary. Unless the
// last control word in the document is a section break itself.
- if (!bNeedSect)
+ if (!bNeedSect || !m_bHadSect)
{
RTFValue::Pointer_t pBreak = m_aStates.top().aSectionSprms.find(NS_sprm::LN_SBkc);
// In case the last section is a continous one, we don't need to output a section break.
@@ -1630,6 +1631,7 @@ int RTFDocumentImpl::dispatchSymbol(RTFKeyword nKeyword)
break;
case RTF_SECT:
{
+ m_bHadSect = true;
if (m_bIgnoreNextContSectBreak)
m_bIgnoreNextContSectBreak = false;
else
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.hxx b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
index 1df8de1ffcd2..283faec9b531 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.hxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.hxx
@@ -590,6 +590,8 @@ namespace writerfilter {
bool m_bWasInFrame;
/// A picture was seen in the current paragraph.
bool m_bHadPicture;
+ /// The document has multiple sections.
+ bool m_bHadSect;
};
} // namespace rtftok
} // namespace writerfilter