diff -r e6a39382bb9c -r c8fb4cf7b3ae textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp --- a/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp Tue Apr 27 16:59:43 2010 +0300 +++ b/textinput/peninputgenericvkb/src/peninputgenericvkbwindow.cpp Tue May 11 16:31:42 2010 +0300 @@ -1219,6 +1219,7 @@ TInt currentRange = IntContext( EPeninputDataTypeCurrentRange ); TInt permittedRange = IntContext( EPeninputDataTypePermittedRange ); TInt currentAccent = IntContext( EPeninputDataTypeCurrentAccent ); + TInt currentLanguage = IntContext( EPeninputDataTypeInputLanguage ); CPeninputRangeBarInfo* rbinfo= ConfigInfo()->RangeBarInfo(); CPeninputRangeInfo* rgninfo = NULL; @@ -1253,7 +1254,9 @@ } } - if ( permittedRange & ERangeNativeNumber ) + if (( permittedRange & ERangeNativeNumber ) && ( currentRange != ERangeNumber ) + && (( ELangArabic == currentLanguage ) || ( ELangFarsi == currentLanguage ) + || ( ELangUrdu == currentLanguage ))) { rgninfo = rbinfo->FindRange( ERangeNativeNumber ); if ( rgninfo && currentRange != ERangeNativeNumber ) @@ -1263,6 +1266,21 @@ aRangeItems.Append( item ); } } + else if(( permittedRange & ERangeNumber ) && ( currentRange != ERangeNumber ) + && !(( ELangThai == currentLanguage ) && ( currentRange == ERangeNativeNumber ))) + { + rgninfo = rbinfo->FindRange( ERangeNumber ); + if ( rgninfo && currentRange != ERangeNumber ) + { + item.iCommand = EPeninputVkbLayoutLatinNumber; + item.iText.Copy( iRangeLabels.iLabelLatinNumber ); + aRangeItems.Append( item ); + } + } + else + { + // Do nothing + } if ( permittedRange & ERangeEnglish ) { @@ -1275,16 +1293,6 @@ } } - if ( permittedRange & ERangeNumber ) - { - rgninfo = rbinfo->FindRange( ERangeNumber ); - if ( rgninfo && currentRange != ERangeNumber ) - { - item.iCommand = EPeninputVkbLayoutLatinNumber; - item.iText.Copy( iRangeLabels.iLabelLatinNumber ); - aRangeItems.Append( item ); - } - } } // ---------------------------------------------------------------------------