From b019f242d6a6cca962f36ec6cb5070447c0eb1e0 Mon Sep 17 00:00:00 2001 From: Paul Wisbey Date: Thu, 20 Aug 2015 15:22:26 +0100 Subject: [PATCH] Fixed cursor behavior when no text is set Change-Id: Ic794e633b284c1257126343ac6c0f6ec615868da --- dali-toolkit/internal/text/decorator/text-decorator.cpp | 6 ++++-- dali-toolkit/internal/text/text-controller-impl.h | 6 ++++++ dali-toolkit/internal/text/text-controller.cpp | 15 ++++++++------- 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/dali-toolkit/internal/text/decorator/text-decorator.cpp b/dali-toolkit/internal/text/decorator/text-decorator.cpp index 2f8d0e4..3e67d8c 100644 --- a/dali-toolkit/internal/text/decorator/text-decorator.cpp +++ b/dali-toolkit/internal/text/decorator/text-decorator.cpp @@ -772,7 +772,6 @@ struct Decorator::Impl : public ConnectionTracker for( std::size_t v = 0; iter != endIter; ++iter,v+=4 ) { - QuadCoordinates& quad = *iter; // top-left (v+0) @@ -846,7 +845,10 @@ struct Decorator::Impl : public ConnectionTracker mHighlightQuadList.clear(); - mHighlightRenderer.SetDepthIndex( mTextDepth - 2u ); // text is rendered at mTextDepth and text's shadow at mTextDepth -1u. + if( mHighlightRenderer ) + { + mHighlightRenderer.SetDepthIndex( mTextDepth - 2u ); // text is rendered at mTextDepth and text's shadow at mTextDepth -1u. + } } } diff --git a/dali-toolkit/internal/text/text-controller-impl.h b/dali-toolkit/internal/text/text-controller-impl.h index 4b1658c..3073611 100644 --- a/dali-toolkit/internal/text/text-controller-impl.h +++ b/dali-toolkit/internal/text/text-controller-impl.h @@ -279,6 +279,12 @@ struct Controller::Impl return ( mEventData && mEventData->mIsShowingPlaceholderText ); } + bool IsShowingRealText() const + { + return ( !IsShowingPlaceholderText() && + 0u != mLogicalModel->mText.Count() ); + } + /** * @brief Called when placeholder-text is hidden */ diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 25ff08d..4b75ffb 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -1383,11 +1383,10 @@ void Controller::TapEvent( unsigned int tapCount, float x, float y ) if( NULL != mImpl->mEventData ) { - const bool isShowingPlaceholderText = mImpl->IsShowingPlaceholderText(); if( 1u == tapCount ) { - if( !isShowingPlaceholderText && - ( EventData::EDITING == mImpl->mEventData->mState ) ) + if( mImpl->IsShowingRealText() && + EventData::EDITING == mImpl->mEventData->mState ) { mImpl->ChangeState( EventData::EDITING_WITH_GRAB_HANDLE ); } @@ -1405,11 +1404,13 @@ void Controller::TapEvent( unsigned int tapCount, float x, float y ) mImpl->RequestRelayout(); } - else if( !isShowingPlaceholderText && - mImpl->mEventData->mSelectionEnabled && - ( 2u == tapCount ) ) + else if( 2u == tapCount ) { - SelectEvent( x, y, false ); + if( mImpl->mEventData->mSelectionEnabled && + mImpl->IsShowingRealText() ) + { + SelectEvent( x, y, false ); + } } } -- 2.7.4