summaryrefslogtreecommitdiff
path: root/oox/source/drawingml/textbody.cxx
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.co.uk>2014-02-14 16:19:50 +0100
committerMiklos Vajna <vmiklos@collabora.co.uk>2014-02-14 16:50:19 +0100
commita6278bc3a9a7de6de5802fc4cbceb739bc0720d6 (patch)
tree977ddf160e0c4faac1ccf2056ce2c4e9576d3778 /oox/source/drawingml/textbody.cxx
parent1e3e7b077f708aefd2e866eca85abc822ae4cd02 (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.cxx5
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()