diff options
author | Miklos Vajna <vmiklos@suse.cz> | 2012-04-21 12:53:22 +0200 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-04-27 14:18:43 +0100 |
commit | beef79827164be4e5a60310515fa6aaf8d76237c (patch) | |
tree | 18a26be2c3d4caf877b3451dbb45dad08769cc2d | |
parent | a61ab93a2c4db7831ca87d6b6725e0df15a644a5 (diff) |
fdo#48876 fix RTF import of \sl without \slmult
(backport of 99b875aee04a808fb28715fb0e143a2b00332832)
-rw-r--r-- | writerfilter/source/rtftok/rtfdocumentimpl.cxx | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx index ff81727e7d2a..fd57905527f7 100644 --- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx +++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx @@ -2404,9 +2404,15 @@ int RTFDocumentImpl::dispatchValue(RTFKeyword nKeyword, int nParam) } break; case RTF_SL: - if (nParam > 0) { - // NS_sprm::LN_PDyaLine could be used, but that won't work with slmult + // This is similar to RTF_ABSH, negative value means 'exact', positive means 'at least'. + RTFValue::Pointer_t pValue(new RTFValue(NS_ooxml::LN_Value_wordprocessingml_ST_LineSpacingRule_atLeast)); + if (nParam < 0) + { + pValue.reset(new RTFValue(NS_ooxml::LN_Value_wordprocessingml_ST_LineSpacingRule_exact)); + pIntValue.reset(new RTFValue(-nParam)); + } + m_aStates.top().aParagraphAttributes->push_back(make_pair(NS_ooxml::LN_CT_Spacing_lineRule, pValue)); m_aStates.top().aParagraphAttributes->push_back(make_pair(NS_ooxml::LN_CT_Spacing_line, pIntValue)); } break; |