Fix vertical position error when cutout enabled. 56/311056/5
authorANZ1217 <chihun.jeong@samsung.com>
Mon, 13 May 2024 10:14:45 +0000 (19:14 +0900)
committerANZ1217 <chihun.jeong@samsung.com>
Tue, 14 May 2024 05:39:27 +0000 (14:39 +0900)
Change-Id: I611529b2540a8aaabe008c188cc18fcc6b8a613e

dali-toolkit/internal/controls/text-controls/text-label-impl.cpp
dali-toolkit/internal/text/rendering/text-typesetter.cpp
dali-toolkit/internal/visuals/text/text-visual.cpp

index c125332..5af0fe1 100644 (file)
@@ -46,9 +46,9 @@
 #include <dali-toolkit/devel-api/visual-factory/visual-factory.h>
 #include <dali-toolkit/internal/text/text-enumerations-impl.h>
 #include <dali-toolkit/public-api/align-enumerations.h>
+#include <dali-toolkit/public-api/visuals/color-visual-properties.h>
 #include <dali-toolkit/public-api/visuals/text-visual-properties.h>
 #include <dali-toolkit/public-api/visuals/visual-properties.h>
-#include <dali-toolkit/public-api/visuals/color-visual-properties.h>
 
 // DEVEL INCLUDES
 #include <dali-toolkit/devel-api/controls/text-controls/text-label-devel.h>
@@ -1121,8 +1121,8 @@ void TextLabel::OnPropertySet(Property::Index index, const Property::Value& prop
       {
         Vector4 backgroundColor = Vector4::ZERO;
 
-        const Property::Map backgroundMap = Self().GetProperty(Toolkit::Control::Property::BACKGROUND).Get<Property::Map>();
-        Property::Value* backgroundValue = backgroundMap.Find(ColorVisual::Property::MIX_COLOR);
+        const Property::Map backgroundMap   = Self().GetProperty(Toolkit::Control::Property::BACKGROUND).Get<Property::Map>();
+        Property::Value*    backgroundValue = backgroundMap.Find(ColorVisual::Property::MIX_COLOR);
         if(backgroundValue)
         {
           backgroundColor = backgroundValue->Get<Vector4>();
@@ -1141,6 +1141,7 @@ void TextLabel::OnPropertySet(Property::Index index, const Property::Value& prop
       }
 
       TextVisual::SetRequireRender(mVisual, cutoutEnabled);
+      break;
     }
     default:
     {
index b8eddcd..6ca9d17 100644 (file)
@@ -19,6 +19,7 @@
 #include <dali-toolkit/internal/text/rendering/text-typesetter.h>
 
 // EXTERNAL INCLUDES
+#include <cmath>
 #include <dali/devel-api/text-abstraction/font-client.h>
 #include <dali/integration-api/debug.h>
 #include <dali/integration-api/trace.h>
@@ -981,8 +982,9 @@ Devel::PixelBuffer Typesetter::RenderWithPixelBuffer(const Vector2& size, Toolki
     }
     case VerticalAlignment::CENTER:
     {
-      penY = static_cast<int32_t>(0.5f * (size.height - layoutSize.height));
+      penY = static_cast<int32_t>(std::round(0.5f * (size.height - layoutSize.height)));
       penY = penY < 0.f ? 0.f : penY;
+
       break;
     }
     case VerticalAlignment::BOTTOM:
index 8e01eac..5d2de15 100644 (file)
@@ -587,7 +587,8 @@ void TextVisual::UpdateRenderer()
       const bool isOverlayStyle               = underlineEnabled || strikethroughEnabled;
 
       // if background with cutout is enabled, This text visual must render the entire control size.
-      if(backgroundWithCutoutEnabled)
+
+      if(cutoutEnabled)
       {
         relayoutSize = Vector2(controlWidth, controlHeight);
         mImpl->mTransform.mSize.width = controlWidth;
@@ -905,7 +906,10 @@ Shader TextVisual::GetTextShader(VisualFactoryCache& factoryCache, const TextVis
 void TextVisual::SetRequireRender(bool requireRender)
 {
   mTextRequireRender = requireRender;
-  mImpl->mRenderer.SetProperty(mTextRequireRenderPropertyIndex, mTextRequireRender);
+  if(mImpl->mRenderer)
+  {
+    mImpl->mRenderer.SetProperty(mTextRequireRenderPropertyIndex, mTextRequireRender);
+  }
 }
 
 } // namespace Internal