X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=75a9e66e9f3fe51b1a257fcafb04a9a58994ecb3;hp=14689412be0de98c19a943dc3866b39451bba537;hb=87a9019904ab49c42f1e32e7ebb6a1512b0dc28c;hpb=f558388c388bcdf4939ca7af098cbcfc1631ad89 diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 1468941..75a9e66 100755 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -65,7 +65,7 @@ const char * const PLACEHOLDER_ELLIPSIS = "ellipsis"; float ConvertToEven( float value ) { int intValue(static_cast( value )); - return static_cast(intValue % 2 == 0) ? intValue : (intValue + 1); + return static_cast( intValue + ( intValue & 1 ) ); } } // namespace @@ -556,7 +556,8 @@ void Controller::SetText( const std::string& text ) mImpl->mModel->mVisualModel->SetTextColor( mImpl->mTextColor ); MarkupProcessData markupProcessData( mImpl->mModel->mLogicalModel->mColorRuns, - mImpl->mModel->mLogicalModel->mFontDescriptionRuns ); + mImpl->mModel->mLogicalModel->mFontDescriptionRuns, + mImpl->mModel->mLogicalModel->mEmbeddedItems ); Length textSize = 0u; const uint8_t* utf8 = NULL; @@ -1241,14 +1242,14 @@ const Vector4& Controller::GetOutlineColor() const return mImpl->mModel->mVisualModel->GetOutlineColor(); } -void Controller::SetOutlineWidth( unsigned int width ) +void Controller::SetOutlineWidth( uint16_t width ) { mImpl->mModel->mVisualModel->SetOutlineWidth( width ); mImpl->RequestRelayout(); } -unsigned int Controller::GetOutlineWidth() const +uint16_t Controller::GetOutlineWidth() const { return mImpl->mModel->mVisualModel->GetOutlineWidth(); } @@ -1340,7 +1341,7 @@ void Controller::SetInputColor( const Vector4& color ) mImpl->mEventData->mInputStyle.textColor = color; mImpl->mEventData->mInputStyle.isDefaultColor = false; - if( EventData::SELECTING == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState ) { const bool handlesCrossed = mImpl->mEventData->mLeftSelectionPosition > mImpl->mEventData->mRightSelectionPosition; @@ -1387,7 +1388,7 @@ void Controller::SetInputFontFamily( const std::string& fontFamily ) mImpl->mEventData->mInputStyle.familyName = fontFamily; mImpl->mEventData->mInputStyle.isFamilyDefined = true; - if( EventData::SELECTING == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState ) { CharacterIndex startOfSelectedText = 0u; Length lengthOfSelectedText = 0u; @@ -1446,7 +1447,7 @@ void Controller::SetInputFontWeight( FontWeight weight ) mImpl->mEventData->mInputStyle.weight = weight; mImpl->mEventData->mInputStyle.isWeightDefined = true; - if( EventData::SELECTING == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState ) { CharacterIndex startOfSelectedText = 0u; Length lengthOfSelectedText = 0u; @@ -1512,7 +1513,7 @@ void Controller::SetInputFontWidth( FontWidth width ) mImpl->mEventData->mInputStyle.width = width; mImpl->mEventData->mInputStyle.isWidthDefined = true; - if( EventData::SELECTING == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState ) { CharacterIndex startOfSelectedText = 0u; Length lengthOfSelectedText = 0u; @@ -1578,7 +1579,7 @@ void Controller::SetInputFontSlant( FontSlant slant ) mImpl->mEventData->mInputStyle.slant = slant; mImpl->mEventData->mInputStyle.isSlantDefined = true; - if( EventData::SELECTING == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState ) { CharacterIndex startOfSelectedText = 0u; Length lengthOfSelectedText = 0u; @@ -1644,7 +1645,7 @@ void Controller::SetInputFontPointSize( float size ) mImpl->mEventData->mInputStyle.size = size; mImpl->mEventData->mInputStyle.isSizeDefined = true; - if( EventData::SELECTING == mImpl->mEventData->mState ) + if( EventData::SELECTING == mImpl->mEventData->mState || EventData::EDITING == mImpl->mEventData->mState || EventData::INACTIVE == mImpl->mEventData->mState ) { CharacterIndex startOfSelectedText = 0u; Length lengthOfSelectedText = 0u; @@ -2625,14 +2626,19 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent ) { DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::KeyEvent %p keyString %s\n", this, keyString.c_str() ); - // InputMethodContext is no longer handling key-events - mImpl->ClearPreEditFlag(); + if( !keyString.empty() ) + { + // InputMethodContext is no longer handling key-events + mImpl->ClearPreEditFlag(); - InsertText( keyString, COMMIT ); - textChanged = true; + InsertText( keyString, COMMIT ); + + textChanged = true; + + // Will request for relayout. + relayoutNeeded = true; + } - // Will request for relayout. - relayoutNeeded = true; } if ( ( mImpl->mEventData->mState != EventData::INTERRUPTED ) && @@ -3939,6 +3945,9 @@ void Controller::ResetText() // Reset buffers. mImpl->mModel->mLogicalModel->mText.Clear(); + // Reset the embedded images buffer. + mImpl->mModel->mLogicalModel->ClearEmbeddedImages(); + // We have cleared everything including the placeholder-text mImpl->PlaceholderCleared();