X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fcontroller%2Ftext-controller-relayouter.cpp;h=fafff2fe12117909d960479367cd56b8eaf792f6;hb=2497507eefb2ff82eb5a18ba875eae8cd8b6b346;hp=d595d00111e57354647fce6c111222515fe31bcd;hpb=da4f1bbf658462bebfc59e1e9c9c7dea7c4c6ab8;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/controller/text-controller-relayouter.cpp b/dali-toolkit/internal/text/controller/text-controller-relayouter.cpp index d595d00..fafff2f 100644 --- a/dali-toolkit/internal/text/controller/text-controller-relayouter.cpp +++ b/dali-toolkit/internal/text/controller/text-controller-relayouter.cpp @@ -349,9 +349,10 @@ float Controller::Relayouter::GetHeightForWidth(Controller& controller, float wi VisualModelPtr& visualModel = model->mVisualModel; TextUpdateInfo& textUpdateInfo = impl.mTextUpdateInfo; - Size layoutSize; + // Get cached value. + Size layoutSize = visualModel->GetHeightForWidth(); - if(fabsf(width - visualModel->mControlSize.width) > Math::MACHINE_EPSILON_1000 || + if(fabsf(width - layoutSize.width) > Math::MACHINE_EPSILON_1000 || textUpdateInfo.mFullRelayoutNeeded || textUpdateInfo.mClearAll) { @@ -361,11 +362,15 @@ float Controller::Relayouter::GetHeightForWidth(Controller& controller, float wi layoutSize = CalculateLayoutSizeOnRequiredControllerSize(controller, sizeRequestedWidthAndMaxHeight, requestedOperationsMask); + // The calculated layout width may not be the same as the requested width. + // For cache efficiency, the requested width is stored. + layoutSize.width = width; + visualModel->SetHeightForWidth(layoutSize); + DALI_LOG_INFO(gLogFilter, Debug::Verbose, "<--Controller::GetHeightForWidth calculated %f\n", layoutSize.height); } else { - layoutSize = visualModel->GetLayoutSize(); DALI_LOG_INFO(gLogFilter, Debug::Verbose, "<--Controller::GetHeightForWidth cached %f\n", layoutSize.height); }