diff options
author | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-02-14 16:19:50 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2014-02-14 16:50:19 +0100 |
commit | a6278bc3a9a7de6de5802fc4cbceb739bc0720d6 (patch) | |
tree | 977ddf160e0c4faac1ccf2056ce2c4e9576d3778 /oox/source/drawingml/textbody.cxx | |
parent | 1e3e7b077f708aefd2e866eca85abc822ae4cd02 (diff) |
drawingML import: fix inheritance of character height
The problem was that in case a shape had multiple (e.g. two) paragraphs,
and in case the first paragraph had an explicit character height, but
not the second, then the cursor carried over the explicit character
height to the second paragraph, but it shouldn't, as that leads to
incorrect character height in the second paragraph.
Fix this by remembering the default character height and using that in
case nothing is set explicitly.
Change-Id: I66e06d5cf192739fb254f7280c74617171d9ee6a
Diffstat (limited to 'oox/source/drawingml/textbody.cxx')
-rw-r--r-- | oox/source/drawingml/textbody.cxx | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/oox/source/drawingml/textbody.cxx b/oox/source/drawingml/textbody.cxx index 3df764339779..c90e4826e6e0 100644 --- a/oox/source/drawingml/textbody.cxx +++ b/oox/source/drawingml/textbody.cxx @@ -20,6 +20,7 @@ #include "oox/drawingml/textbody.hxx" #include <com/sun/star/text/XText.hpp> #include <com/sun/star/text/XTextCursor.hpp> +#include <com/sun/star/beans/XPropertySet.hpp> #include "oox/drawingml/textparagraph.hxx" using namespace ::com::sun::star::uno; @@ -63,8 +64,10 @@ void TextBody::insertAt( aCombinedTextStyle.apply( *pMasterTextListStylePtr ); aCombinedTextStyle.apply( maTextListStyle ); + Reference<css::beans::XPropertySet> xPropertySet(xAt, UNO_QUERY); + float nCharHeight = xPropertySet->getPropertyValue("CharHeight").get<float>(); for( TextParagraphVector::const_iterator aBeg = maParagraphs.begin(), aIt = aBeg, aEnd = maParagraphs.end(); aIt != aEnd; ++aIt ) - (*aIt)->insertAt( rFilterBase, xText, xAt, rTextStyleProperties, aCombinedTextStyle, aIt == aBeg ); + (*aIt)->insertAt( rFilterBase, xText, xAt, rTextStyleProperties, aCombinedTextStyle, aIt == aBeg, nCharHeight ); } bool TextBody::isEmpty() |