From: HyunJu Shin Date: Wed, 29 Nov 2017 11:06:34 +0000 (+0000) Subject: Merge "[4.0] Fixed an issue where the text would multiply the alpha value twice"... X-Git-Tag: submit/tizen_4.0/20171129.111338 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Ftags%2Fsubmit%2Ftizen_4.0%2F20171129.111338;hp=4b5fca1e71d8929cf24e126c99826f1e97a237ea;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git Merge "[4.0] Fixed an issue where the text would multiply the alpha value twice" into tizen_4.0 --- diff --git a/dali-toolkit/internal/text/text-controller-impl.cpp b/dali-toolkit/internal/text/text-controller-impl.cpp index c1eb0e4..a451a2a 100644 --- a/dali-toolkit/internal/text/text-controller-impl.cpp +++ b/dali-toolkit/internal/text/text-controller-impl.cpp @@ -423,7 +423,8 @@ void Controller::Impl::CalculateTextUpdateIndices( Length& numberOfCharacters ) mTextUpdateInfo.mParagraphCharacterIndex = 0u; numberOfCharacters = 0u; - mTextUpdateInfo.mRequestedNumberOfCharacters = mTextUpdateInfo.mNumberOfCharactersToAdd - mTextUpdateInfo.mNumberOfCharactersToRemove; + // prevent mTextUpdateInfo.mRequestedNumberOfCharacters value underflow + mTextUpdateInfo.mRequestedNumberOfCharacters = ( mTextUpdateInfo.mNumberOfCharactersToAdd < mTextUpdateInfo.mNumberOfCharactersToRemove ? 0u : mTextUpdateInfo.mNumberOfCharactersToAdd - mTextUpdateInfo.mNumberOfCharactersToRemove ); // Nothing else to do if there are no paragraphs. return; @@ -439,7 +440,9 @@ void Controller::Impl::CalculateTextUpdateIndices( Length& numberOfCharacters ) // Text is being added in a new paragraph after the last character of the text. mTextUpdateInfo.mParagraphCharacterIndex = mTextUpdateInfo.mPreviousNumberOfCharacters; numberOfCharacters = 0u; - mTextUpdateInfo.mRequestedNumberOfCharacters = mTextUpdateInfo.mNumberOfCharactersToAdd - mTextUpdateInfo.mNumberOfCharactersToRemove; + + // prevent mTextUpdateInfo.mRequestedNumberOfCharacters value underflow + mTextUpdateInfo.mRequestedNumberOfCharacters = ( mTextUpdateInfo.mNumberOfCharactersToAdd < mTextUpdateInfo.mNumberOfCharactersToRemove ? 0u : mTextUpdateInfo.mNumberOfCharactersToAdd - mTextUpdateInfo.mNumberOfCharactersToRemove ); mTextUpdateInfo.mStartGlyphIndex = mModel->mVisualModel->mGlyphs.Count(); mTextUpdateInfo.mStartLineIndex = mModel->mVisualModel->mLines.Count() - 1u; @@ -491,7 +494,15 @@ void Controller::Impl::CalculateTextUpdateIndices( Length& numberOfCharacters ) } } - mTextUpdateInfo.mRequestedNumberOfCharacters = numberOfCharacters + mTextUpdateInfo.mNumberOfCharactersToAdd - mTextUpdateInfo.mNumberOfCharactersToRemove; + // prevent mTextUpdateInfo.mRequestedNumberOfCharacters value underflow + if( numberOfCharacters + mTextUpdateInfo.mNumberOfCharactersToAdd < mTextUpdateInfo.mNumberOfCharactersToRemove ) + { + mTextUpdateInfo.mRequestedNumberOfCharacters = 0u; + } + else + { + mTextUpdateInfo.mRequestedNumberOfCharacters = numberOfCharacters + mTextUpdateInfo.mNumberOfCharactersToAdd - mTextUpdateInfo.mNumberOfCharactersToRemove; + } mTextUpdateInfo.mStartGlyphIndex = *( mModel->mVisualModel->mCharactersToGlyph.Begin() + mTextUpdateInfo.mParagraphCharacterIndex ); } diff --git a/dali-toolkit/internal/visuals/texture-manager-impl.h b/dali-toolkit/internal/visuals/texture-manager-impl.h index 7693b1c..b385344 100644 --- a/dali-toolkit/internal/visuals/texture-manager-impl.h +++ b/dali-toolkit/internal/visuals/texture-manager-impl.h @@ -376,7 +376,7 @@ private: } TextureId textureId; ///< The external Texture Id assigned to this load - unsigned short loadId; ///< The load Id used by the async loader to reference this load + uint32_t loadId; ///< The load Id used by the async loader to reference this load }; // Private typedefs: