X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftext%2Fcursor-helper-functions.cpp;h=19db7aeb8c965131a435da67c3691c8c70016ace;hb=b05a852e155e887cb0e9e1018205c57bfbbfa334;hp=91b6a406ab5f883e7ebeaf22de36c33ff98ece8f;hpb=d26f555fd84d43b0a3e650c66a0e626e841dd9c6;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/text/cursor-helper-functions.cpp b/dali-toolkit/internal/text/cursor-helper-functions.cpp index 91b6a40..19db7ae 100644 --- a/dali-toolkit/internal/text/cursor-helper-functions.cpp +++ b/dali-toolkit/internal/text/cursor-helper-functions.cpp @@ -467,6 +467,13 @@ CharacterIndex GetClosestCursorIndex( VisualModelPtr visualModel, void GetCursorPosition( GetCursorPositionParameters& parameters, CursorInfo& cursorInfo ) { + const LineRun* const modelLines = parameters.visualModel->mLines.Begin(); + if( NULL == modelLines ) + { + // Nothing to do. + return; + } + // Whether the logical cursor position is at the end of the whole text. const bool isLastPosition = parameters.logicalModel->mText.Count() == parameters.logical; @@ -476,8 +483,6 @@ void GetCursorPosition( GetCursorPositionParameters& parameters, // Whether the cursor is in the last position and the last position is a new paragraph character. const bool isLastNewParagraph = parameters.isMultiline && isLastPosition && TextAbstraction::IsNewParagraph( *( parameters.logicalModel->mText.Begin() + characterOfLine ) ); - const LineRun* const modelLines = parameters.visualModel->mLines.Begin(); - const LineIndex lineIndex = parameters.visualModel->GetLineOfCharacter( characterOfLine ); const LineRun& line = *( modelLines + lineIndex ); @@ -501,11 +506,8 @@ void GetCursorPosition( GetCursorPositionParameters& parameters, cursorInfo.primaryCursorHeight = cursorInfo.lineHeight; // Set the primary cursor's position. - cursorInfo.primaryPosition.x = 0.f; + cursorInfo.primaryPosition.x = ( LTR == line.direction ) ? newLine.alignmentOffset : parameters.visualModel->mControlSize.width - newLine.alignmentOffset; cursorInfo.primaryPosition.y = cursorInfo.lineOffset; - - // Transform the cursor info from line's coords to text's coords. - cursorInfo.primaryPosition.x += ( LTR == line.direction ) ? 0.f : parameters.visualModel->mControlSize.width; } else { @@ -665,7 +667,6 @@ void GetCursorPosition( GetCursorPositionParameters& parameters, // Set the primary cursor's height. cursorInfo.primaryCursorHeight = cursorInfo.isSecondaryCursor ? 0.5f * glyphMetrics.fontHeight : glyphMetrics.fontHeight; - cursorInfo.glyphOffset = line.ascender - glyphMetrics.ascender; // Set the primary cursor's position. cursorInfo.primaryPosition.x = -glyphMetrics.xBearing + primaryPosition.x + glyphAdvance;