From: Victor Cebollada Date: Wed, 14 May 2014 13:00:28 +0000 (+0100) Subject: TextView - Fix for emoji glyph's wrong sizes X-Git-Tag: dali-2014-wk21-release~17 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=31f8b86ac06be7e61fe3a8637c27e55f12e41168;ds=sidebyside TextView - Fix for emoji glyph's wrong sizes Change-Id: I09b8c183f0b4231b44d79186a05bbf4fa14ef26c Signed-off-by: Victor Cebollada --- diff --git a/base/dali-toolkit/internal/controls/text-view/text-view-word-processor.cpp b/base/dali-toolkit/internal/controls/text-view/text-view-word-processor.cpp index 94a2998..e123930 100644 --- a/base/dali-toolkit/internal/controls/text-view/text-view-word-processor.cpp +++ b/base/dali-toolkit/internal/controls/text-view/text-view-word-processor.cpp @@ -37,6 +37,8 @@ namespace TextViewProcessor namespace { +const std::string EMOJI_FONT_NAME( "SamsungEmoji" ); // Emoticons font family name. + /** * Updates the word size and ascender. * @@ -115,19 +117,26 @@ void CreateWordTextInfo( const MarkupProcessor::StyledTextArray& word, Character character = styledText.mText[index]; styledCharacter.mText.Append( character ); - //Choose the right font for the given character and style. - ChooseFontFamilyName( styledCharacter ); - - const Font font = Font::New( FontParameters( styledCharacter.mStyle.GetFontName(), styledCharacter.mStyle.GetFontStyle(), styledCharacter.mStyle.GetFontPointSize() ) ); - const Font::Metrics metrics = font.GetMetrics( character ); - const float ascender = font.GetAscender(); - // Create layout character info. CharacterLayoutInfo characterLayoutInfo; characterLayoutInfo.mIsColorGlyph = GlyphImage::IsColorGlyph( character ); DALI_LOG_INFO( gTextViewProcessorLogFilter, Debug::General, " Is color glyph: %s\n", ( characterLayoutInfo.mIsColorGlyph ? "True" : "False" ) ); + if( characterLayoutInfo.mIsColorGlyph ) + { + styledCharacter.mStyle.SetFontName( EMOJI_FONT_NAME ); + } + else + { + //Choose the right font for the given character and style. + ChooseFontFamilyName( styledCharacter ); + } + + const Font font = Font::New( FontParameters( styledCharacter.mStyle.GetFontName(), styledCharacter.mStyle.GetFontStyle(), styledCharacter.mStyle.GetFontPointSize() ) ); + const Font::Metrics metrics = font.GetMetrics( character ); + const float ascender = font.GetAscender(); + // Fill Natural size info for current character. characterLayoutInfo.mHeight = font.GetLineHeight(); characterLayoutInfo.mAdvance = metrics.GetAdvance();