X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=text%2Fdali%2Finternal%2Ftext-abstraction%2Fshaping-impl.cpp;h=4d389c55f7685870f24623f5a1da665aba908004;hb=efe43119391e981bbf85bfa68a04b01a05ec45bd;hp=ae87d9448a1f2153b85ae921f28beaa0315d6439;hpb=12e0713584c2475eabbc49843029e193a819ac42;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/text/dali/internal/text-abstraction/shaping-impl.cpp b/text/dali/internal/text-abstraction/shaping-impl.cpp index ae87d94..4d389c5 100644 --- a/text/dali/internal/text-abstraction/shaping-impl.cpp +++ b/text/dali/internal/text-abstraction/shaping-impl.cpp @@ -29,6 +29,7 @@ #include #include +#include namespace Dali { @@ -94,6 +95,13 @@ const hb_script_t SCRIPT_TO_HARFBUZZ[] = HB_SCRIPT_LAO, HB_SCRIPT_THAI, HB_SCRIPT_KHMER, + HB_SCRIPT_JAVANESE, + HB_SCRIPT_SUNDANESE, + + HB_SCRIPT_ETHIOPIC, + HB_SCRIPT_OL_CHIKI, + HB_SCRIPT_TAGALOG, + HB_SCRIPT_MEETEI_MAYEK, HB_SCRIPT_UNKNOWN, // EMOJI HB_SCRIPT_UNKNOWN, // SYMBOLS1 @@ -187,9 +195,13 @@ struct Shaping::Plugin hb_buffer_set_script( harfBuzzBuffer, SCRIPT_TO_HARFBUZZ[ script ] ); /* see hb-unicode.h */ - hb_buffer_set_language( harfBuzzBuffer, - hb_language_from_string( DEFAULT_LANGUAGE, - DEFAULT_LANGUAGE_LENGTH ) ); + + char* currentLocale = setlocale(LC_MESSAGES,NULL); + + std::istringstream stringStream( currentLocale ); + std::string localeString; + std::getline(stringStream, localeString, '.'); + hb_buffer_set_language( harfBuzzBuffer, hb_language_from_string( localeString.c_str(), localeString.size() ) ); /* Layout the text */ hb_buffer_add_utf32( harfBuzzBuffer, text, numberOfCharacters, 0u, numberOfCharacters ); @@ -201,6 +213,7 @@ struct Shaping::Plugin hb_glyph_info_t* glyphInfo = hb_buffer_get_glyph_infos( harfBuzzBuffer, &glyphCount ); hb_glyph_position_t *glyphPositions = hb_buffer_get_glyph_positions( harfBuzzBuffer, &glyphCount ); const GlyphIndex lastGlyphIndex = glyphCount - 1u; + for( GlyphIndex i = 0u; i < glyphCount; ) { if( rtlDirection )