X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Ftext-controller.cpp;h=bce657c69028733c7b052e6ddb7296edefb25ca0;hp=25ff08d9205f8811a7fdb470493bc8aec44d0c4b;hb=b8dec7134bf61ca6b9e47efce907131cb326cc64;hpb=07337c5341cf30d8a81dd3beb57e8364cf670d71;ds=sidebyside diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 25ff08d..bce657c 100644 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -34,7 +34,7 @@ namespace { #if defined(DEBUG_ENABLED) - Debug::Filter* gLogFilter = Debug::Filter::New(Debug::Verbose, true, "LOG_TEXT_CONTROLS"); + Debug::Filter* gLogFilter = Debug::Filter::New(Debug::NoLogging, true, "LOG_TEXT_CONTROLS"); #endif const float MAX_FLOAT = std::numeric_limits::max(); @@ -81,9 +81,10 @@ void Controller::SetText( const std::string& text ) if( mImpl->mEventData ) { // If popup shown then hide it by switching to Editing state - if ( EventData::SELECTING == mImpl->mEventData->mState || - EventData::SELECTION_CHANGED == mImpl->mEventData->mState || - EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) + if( ( EventData::SELECTING == mImpl->mEventData->mState ) || + ( EventData::SELECTION_CHANGED == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_GRAB_HANDLE == mImpl->mEventData->mState ) ) { mImpl->ChangeState( EventData::EDITING ); } @@ -708,8 +709,9 @@ void Controller::ResetCursorPosition( CharacterIndex cursorIndex ) mImpl->mEventData->mPrimaryCursorPosition = cursorIndex; // Update the cursor if it's in editing mode. - if( ( EventData::EDITING == mImpl->mEventData->mState ) || - ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) ) + if( ( EventData::EDITING == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_GRAB_HANDLE == mImpl->mEventData->mState ) ) { mImpl->mEventData->mUpdateCursorPosition = true; } @@ -762,8 +764,13 @@ void Controller::TextInsertedEvent() REORDER ); // Queue a cursor reposition event; this must wait until after DoRelayout() - mImpl->mEventData->mUpdateCursorPosition = true; - mImpl->mEventData->mScrollAfterUpdatePosition = true; + if( ( EventData::EDITING == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_POPUP == mImpl->mEventData->mState ) || + ( EventData::EDITING_WITH_GRAB_HANDLE == mImpl->mEventData->mState ) ) + { + mImpl->mEventData->mUpdateCursorPosition = true; + mImpl->mEventData->mScrollAfterUpdatePosition = true; + } } void Controller::TextDeletedEvent() @@ -1284,24 +1291,6 @@ void Controller::InsertText( const std::string& text, Controller::InsertType typ mImpl->mEventData->mPreEditLength = utf32Characters.Count(); mImpl->mEventData->mPreEditFlag = true; - if( 0u != mImpl->mVisualModel->mCharactersToGlyph.Count() ) - { - // Add the underline for the pre-edit text. - const GlyphIndex* const charactersToGlyphBuffer = mImpl->mVisualModel->mCharactersToGlyph.Begin(); - const Length* const glyphsPerCharacterBuffer = mImpl->mVisualModel->mGlyphsPerCharacter.Begin(); - - const GlyphIndex glyphStart = *( charactersToGlyphBuffer + mImpl->mEventData->mPreEditStartPosition ); - const CharacterIndex lastPreEditCharacter = mImpl->mEventData->mPreEditStartPosition + ( ( mImpl->mEventData->mPreEditLength > 0u ) ? mImpl->mEventData->mPreEditLength - 1u : 0u ); - const Length numberOfGlyphsLastCharacter = *( glyphsPerCharacterBuffer + lastPreEditCharacter ); - const GlyphIndex glyphEnd = *( charactersToGlyphBuffer + lastPreEditCharacter ) + ( numberOfGlyphsLastCharacter > 1u ? numberOfGlyphsLastCharacter - 1u : 0u ); - - GlyphRun underlineRun; - underlineRun.glyphIndex = glyphStart; - underlineRun.numberOfGlyphs = 1u + glyphEnd - glyphStart; - - // TODO: At the moment the underline runs are only for pre-edit. - mImpl->mVisualModel->mUnderlineRuns.PushBack( underlineRun ); - } DALI_LOG_INFO( gLogFilter, Debug::Verbose, "mPreEditStartPosition %d mPreEditLength %d\n", mImpl->mEventData->mPreEditStartPosition, mImpl->mEventData->mPreEditLength ); } } @@ -1383,11 +1372,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 +1393,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 ); + } } }