mGrabHandle.SetAnchorPoint( AnchorPoint::TOP_CENTER );
mGrabHandle.SetDrawMode( DrawMode::OVERLAY );
- mGrabArea = Actor::New(); // Area that Grab handle responds to, larger than actual handle so easier to move
+ // Area that Grab handle responds to, larger than actual handle so easier to move
#ifdef DECORATOR_DEBUG
+ mGrabArea = Toolkit::CreateSolidColorActor( Vector4(1.0f, 0.0f, 0.0f, 0.5f) );
mGrabArea.SetName( "GrabArea" );
+#else
+ mGrabArea = Actor::New();
#endif
- mGrabArea.SetPositionInheritanceMode( Dali::USE_PARENT_POSITION );
+ mGrabArea.SetParentOrigin( ParentOrigin::TOP_CENTER );
+ mGrabArea.SetAnchorPoint( AnchorPoint::TOP_CENTER );
mGrabArea.SetSizeMode( SIZE_RELATIVE_TO_PARENT );
mGrabArea.SetSizeModeFactor( DEFAULT_GRAB_HANDLE_RELATIVE_SIZE );
mGrabHandle.Add(mGrabArea);
totalHeight += lines[lineIndex].lineSize.height;
if( y < totalHeight )
{
- break;
+ return lineIndex;
}
}
- return lineIndex;
+ return lineIndex-1;
}
void GetClosestCursorPosition( CharacterIndex& logical, float& visualX, float& visualY, float& height )
float visualX( 0.0f );
float visualY( 0.0f );
- LineIndex lineIndex( 0u );
+ float height( 0.0f );
const Vector<LineRun>& lineRuns = mVisualModel->mLines;
if( cursorGlyph > 0 )
visualX += mVisualModel->mGlyphs[ cursorGlyph ].width;
// Find the line height
- for( GlyphIndex lastGlyph = 0; lineIndex < lineRuns.Count(); ++lineIndex )
+ GlyphIndex lastGlyph( 0 );
+ for( LineIndex lineIndex = 0u; lineIndex < lineRuns.Count(); ++lineIndex )
{
lastGlyph = (lineRuns[lineIndex].glyphIndex + lineRuns[lineIndex].numberOfGlyphs);
if( cursorGlyph < lastGlyph )
{
+ height = lineRuns[lineIndex].lineSize.height;
break;
}
}
}
- mDecorator->SetPosition( PRIMARY_CURSOR, visualX, visualY, lineRuns[lineIndex].lineSize.height );
+ mDecorator->SetPosition( PRIMARY_CURSOR, visualX, visualY, height );
mDecoratorUpdated = true;
}