summaryrefslogtreecommitdiff
path: root/filter/source/svg/presentation_engine.js
diff options
context:
space:
mode:
Diffstat (limited to 'filter/source/svg/presentation_engine.js')
-rw-r--r--filter/source/svg/presentation_engine.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/filter/source/svg/presentation_engine.js b/filter/source/svg/presentation_engine.js
index cf49ba565192..dbfe2ab0f914 100644
--- a/filter/source/svg/presentation_engine.js
+++ b/filter/source/svg/presentation_engine.js
@@ -5401,6 +5401,29 @@ function getTextFieldType ( elem )
else if (sContent === '<header>')
sFieldType = aHeaderClassName;
}
+
+ if( sFieldType )
+ return sFieldType;
+
+ var aTextPortionElement = getElementByClassName( elem, 'TextPortion' );
+ if( aTextPortionElement )
+ {
+ var sContent = aTextPortionElement.textContent
+ if( sContent.indexOf( '<number>' ) != -1 )
+ sFieldType = aSlideNumberClassName;
+ else if( sContent.indexOf( '<date/time>' ) != -1 )
+ sFieldType = aDateTimeClassName;
+ else if( sContent.indexOf( '<date>' ) != -1 )
+ sFieldType = aDateClassName;
+ else if( sContent.indexOf( '<time>' ) != -1 )
+ sFieldType = aTimeClassName;
+ else if( sContent.indexOf( '<slide-name>' ) != -1 )
+ sFieldType = aSlideNameClassName;
+ else if( sContent.indexOf( '<footer>' ) != -1 )
+ sFieldType = aFooterClassName;
+ else if( sContent.indexOf( '<header>' ) != -1 )
+ sFieldType = aHeaderClassName;
+ }
}
return sFieldType;
}
@@ -5610,6 +5633,20 @@ PlaceholderShape.prototype.init = function()
var aTextElem = getElementByClassName( aTextFieldElement, 'SVGTextShape' );
if( aTextElem )
{
+ var aTextParagraphSet = getElementsByClassName( aTextElem, 'TextParagraph' );
+ // When the text field width is too small, the placeholder text spans several lines.
+ // We remove all text lines but the first one which is used as a placeholder.
+ // This is a workaround but it should work in the majority of cases.
+ // A complete solution needs to support svg text wrapping.
+ if( aTextParagraphSet.length > 1 )
+ {
+ var i = aTextParagraphSet.length;
+ while( i > 1 )
+ {
+ aTextElem.removeChild(aTextParagraphSet[i-1]);
+ --i;
+ }
+ }
var aPlaceholderElement = getElementByClassName(aTextElem, 'PlaceholderText');
if( aPlaceholderElement )
{