Merge "TextFit : modified it to work even if you change the text or multi-line attrib...
authorjoogab yun <joogab.yun@samsung.com>
Thu, 11 Jul 2019 06:06:32 +0000 (06:06 +0000)
committerGerrit Code Review <gerrit@review.ap-northeast-2.compute.internal>
Thu, 11 Jul 2019 06:06:32 +0000 (06:06 +0000)
dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/text/text-controller.cpp

index 0259391..c521817 100755 (executable)
@@ -959,12 +959,10 @@ void TextLabel::OnRelayout( const Vector2& size, RelayoutContainer& container )
 
   Vector2 contentSize( size.x - ( padding.start + padding.end ), size.y - ( padding.top + padding.bottom ) );
 
-  // If the same text comes for relayouting for same layout size we don't need to calculate point size again.
-  // Like for color change.
-  if (mController->IsTextFitEnabled() && (mController->GetTextFitContentSize() != contentSize ) )
+  if( mController->IsTextFitEnabled() )
   {
-    mController->FitPointSizeforLayout(contentSize);
-    mController->SetTextFitContentSize(contentSize);
+    mController->FitPointSizeforLayout( contentSize );
+    mController->SetTextFitContentSize( contentSize );
   }
 
   // Support Right-To-Left
index 36c5194..a7b098a 100755 (executable)
@@ -2128,6 +2128,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 +2177,7 @@ void Controller::FitPointSizeforLayout( Size layoutSize )
     mImpl->mFontDefaults->mFitPointSize = pointSizeArray[bestSizeIndex];
     mImpl->mFontDefaults->sizeDefined = true;
     ClearFontData();
+  }
 }
 
 float Controller::GetHeightForWidth( float width )