X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=fee1690e6295bcf6c59c375b5fd1fdc3598f6a3a;hb=80683070b9f5e77093540c20464a3150b895b778;hp=36c519449ce464cfca8a8aa6b78671e37b8bf92a;hpb=a084ac1cd22b1b24be2d5ed935804ef9102965a7;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 36c5194..fee1690 100755 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -20,6 +20,7 @@ // EXTERNAL INCLUDES #include +#include #include #include #include @@ -1242,6 +1243,10 @@ void Controller::SetDefaultColor( const Vector4& color ) { mImpl->mModel->mVisualModel->SetTextColor( color ); + mImpl->mModel->mLogicalModel->mColorRuns.Clear(); + + mImpl->mOperationsPending = static_cast( mImpl->mOperationsPending | COLOR ); + mImpl->RequestRelayout(); } } @@ -1440,7 +1445,7 @@ const std::string& Controller::GetDefaultOutlineProperties() const bool Controller::SetDefaultLineSpacing( float lineSpacing ) { - if( std::abs(lineSpacing - mImpl->mLayoutEngine.GetDefaultLineSpacing()) > Math::MACHINE_EPSILON_1000 ) + if( std::fabs( lineSpacing - mImpl->mLayoutEngine.GetDefaultLineSpacing() ) > Math::MACHINE_EPSILON_1000 ) { mImpl->mLayoutEngine.SetDefaultLineSpacing(lineSpacing); mImpl->mRecalculateNaturalSize = true; @@ -2128,6 +2133,9 @@ bool Controller::CheckForTextFit( float pointSize, Size& layoutSize ) void Controller::FitPointSizeforLayout( Size layoutSize ) { + const OperationsMask operations = mImpl->mOperationsPending; + if( NO_OPERATION != ( UPDATE_LAYOUT_SIZE & operations ) ) + { bool actualellipsis = mImpl->mModel->mElideEnabled; float minPointSize = mImpl->mTextFitMinSize; float maxPointSize = mImpl->mTextFitMaxSize; @@ -2174,6 +2182,7 @@ void Controller::FitPointSizeforLayout( Size layoutSize ) mImpl->mFontDefaults->mFitPointSize = pointSizeArray[bestSizeIndex]; mImpl->mFontDefaults->sizeDefined = true; ClearFontData(); + } } float Controller::GetHeightForWidth( float width ) @@ -3770,7 +3779,7 @@ bool Controller::DoRelayout( const Size& size, // Make sure the index is not out of bound if ( charactersToGlyph.Count() != glyphsPerCharacter.Count() || requestedNumberOfCharacters > charactersToGlyph.Count() || - ( lastIndex >= charactersToGlyph.Count() && charactersToGlyph.Count() > 0u ) ) + ( lastIndex > charactersToGlyph.Count() && charactersToGlyph.Count() > 0u ) ) { std::string currentText; GetText( currentText );