Merge "Send the empty string to IME when PlaceholderText shows" into devel/master
authorSeoyeon Kim <seoyeon2.kim@samsung.com>
Tue, 12 Dec 2017 10:21:28 +0000 (10:21 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Tue, 12 Dec 2017 10:21:28 +0000 (10:21 +0000)
1  2 
dali-toolkit/internal/text/text-controller.cpp

@@@ -2105,15 -2105,8 +2105,15 @@@ void Controller::GetPlaceholderProperty
  
  Toolkit::DevelText::TextDirection::Type Controller::GetTextDirection()
  {
 -  const LineRun* const firstline = mImpl->mModel->mVisualModel->mLines.Begin();
 -  if ( firstline && firstline->direction )
 +  if( ( 0u == mImpl->mModel->mLogicalModel->mText.Count() ) )
 +  {
 +    return Toolkit::DevelText::TextDirection::LEFT_TO_RIGHT;
 +  }
 +
 +  const Character character = mImpl->mModel->mLogicalModel->mText[0];
 +  Script script = TextAbstraction::GetCharacterScript( character );
 +
 +  if( TextAbstraction::IsRightToLeftScript( script ) )
    {
      return Toolkit::DevelText::TextDirection::RIGHT_TO_LEFT;
    }
@@@ -2744,7 -2737,17 +2744,17 @@@ ImfManager::ImfCallbackData Controller:
  
    if( retrieveText )
    {
-     mImpl->GetText( numberOfWhiteSpaces, text );
+     if( !mImpl->IsShowingPlaceholderText() )
+     {
+       // Retrieves the normal text string.
+       mImpl->GetText( numberOfWhiteSpaces, text );
+     }
+     else
+     {
+       // When the current text is Placeholder Text, the surrounding text should be empty string.
+       // It means DALi should send empty string ("") to IME.
+       text = "";
+     }
    }
  
    ImfManager::ImfCallbackData callbackData( ( retrieveText || retrieveCursor ), cursorPosition, text, false );
@@@ -3704,7 -3707,7 +3714,7 @@@ bool Controller::DeleteEvent( int keyCo
                            1,
                            UPDATE_INPUT_STYLE );
    }
 -  else if( ( mImpl->mEventData->mPrimaryCursorPosition >= 0 ) && ( keyCode == Dali::DevelKey::DALI_KEY_DELETE ) )
 +  else if( keyCode == Dali::DevelKey::DALI_KEY_DELETE )
    {
      // Remove the character after the current cursor position
      removed = RemoveText( 0,
@@@ -3843,7 -3846,6 +3853,7 @@@ void Controller::ClearFontData(
    mImpl->mOperationsPending = static_cast<OperationsMask>( mImpl->mOperationsPending |
                                                             VALIDATE_FONTS            |
                                                             SHAPE_TEXT                |
 +                                                           BIDI_INFO                 |
                                                             GET_GLYPH_METRICS         |
                                                             LAYOUT                    |
                                                             UPDATE_LAYOUT_SIZE        |