From d319327a918acb5e8e662ec13e70777f3d4e7396 Mon Sep 17 00:00:00 2001 From: "minho.sun" Date: Thu, 28 Dec 2017 10:31:07 +0900 Subject: [PATCH] Fix text scrolling bug Change if statement for text scrolling. Even if text is longer than control, Elided state can be false. So, comparing texture width with control width is better way. Change-Id: Iea613cd1bcfc3ecb3bc562cd106367fe00dc4891 Signed-off-by: minho.sun --- dali-toolkit/internal/controls/text-controls/text-label-impl.cpp | 2 +- dali-toolkit/internal/text/text-scroller.cpp | 6 ++++-- dali-toolkit/internal/text/text-scroller.h | 3 +-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp index 0cbb799..3f420b5 100644 --- a/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp +++ b/dali-toolkit/internal/controls/text-controls/text-label-impl.cpp @@ -1021,7 +1021,7 @@ void TextLabel::SetUpAutoScrolling() // Set parameters for scrolling Renderer renderer = static_cast( GetImplementation( mVisual ) ).GetRenderer(); - mTextScroller->SetParameters( Self(), renderer, textureSet, controlSize, verifiedSize, wrapGap, direction, mController->GetHorizontalAlignment(), mController->GetVerticalAlignment(), mController->IsTextElideEnabled() ); + mTextScroller->SetParameters( Self(), renderer, textureSet, controlSize, verifiedSize, wrapGap, direction, mController->GetHorizontalAlignment(), mController->GetVerticalAlignment() ); } void TextLabel::ScrollingFinished() diff --git a/dali-toolkit/internal/text/text-scroller.cpp b/dali-toolkit/internal/text/text-scroller.cpp index a1bb52a..fab9327 100644 --- a/dali-toolkit/internal/text/text-scroller.cpp +++ b/dali-toolkit/internal/text/text-scroller.cpp @@ -257,7 +257,7 @@ TextScroller::~TextScroller() { } -void TextScroller::SetParameters( Actor scrollingTextActor, Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& textureSize, const float wrapGap, CharacterDirection direction, HorizontalAlignment::Type horizontalAlignment, VerticalAlignment::Type verticalAlignment, bool isTextElided ) +void TextScroller::SetParameters( Actor scrollingTextActor, Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& textureSize, const float wrapGap, CharacterDirection direction, HorizontalAlignment::Type horizontalAlignment, VerticalAlignment::Type verticalAlignment ) { DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextScroller::SetParameters controlSize[%f,%f] textureSize[%f,%f] direction[%d]\n", controlSize.x, controlSize.y, textureSize.x, textureSize.y, direction ); @@ -297,7 +297,7 @@ void TextScroller::SetParameters( Actor scrollingTextActor, Renderer renderer, T float horizontalAlign; - if( isTextElided ) + if( textureSize.x > controlSize.x ) { // if Text is elided, scroll should start at the begin of text. horizontalAlign = HORIZONTAL_ALIGNMENT_TABLE[HorizontalAlignment::BEGIN][ direction ]; @@ -306,7 +306,9 @@ void TextScroller::SetParameters( Actor scrollingTextActor, Renderer renderer, T { horizontalAlign = HORIZONTAL_ALIGNMENT_TABLE[ horizontalAlignment ][ direction ]; } + const float verticalAlign = VERTICAL_ALIGNMENT_TABLE[ verticalAlignment ]; + DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextScroller::SetParameters horizontalAlign[%f], verticalAlign[%f]\n", horizontalAlign, verticalAlign ); scrollingTextActor.RegisterProperty( "uTextureSize", textureSize ); diff --git a/dali-toolkit/internal/text/text-scroller.h b/dali-toolkit/internal/text/text-scroller.h index 4000023..a7a6410 100644 --- a/dali-toolkit/internal/text/text-scroller.h +++ b/dali-toolkit/internal/text/text-scroller.h @@ -70,9 +70,8 @@ public: * @param[in] direction text direction true for right to left text * @param[in] horizontalAlignment horizontal alignment of the text * @param[in] verticalAlignment vertical alignment of the text - * @param[in] isTextElided whether text is elided or not */ - void SetParameters( Actor scrollingTextActor, Dali::Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& textureSize, const float wrapGap, CharacterDirection direction, HorizontalAlignment::Type horizontalAlignment, VerticalAlignment::Type verticalAlignment, bool isTextElided ); + void SetParameters( Actor scrollingTextActor, Dali::Renderer renderer, TextureSet textureSet, const Size& controlSize, const Size& textureSize, const float wrapGap, CharacterDirection direction, HorizontalAlignment::Type horizontalAlignment, VerticalAlignment::Type verticalAlignment ); /** * @brief Set the gap distance to elapse before the text wraps around -- 2.7.4