rect.x = cursorRect.x - __pHandlerBitmap->GetWidthF()/2.0f;
rect.y = cursorRect.y + cursorRect.height;
- FloatRectangle alignedCursorRect = CoordinateSystem::AlignToDevice(cursorRect);
- checkPoint = FloatPoint(cursorRect.x, alignedCursorRect.y + alignedCursorRect.height);
+ checkPoint = FloatPoint(cursorRect.x, cursorRect.y + cursorRect.height);
+
if (__handlerDirection == HANDLER_DIRECTION_REVERSE_2)
{
rect.y -= (cursorRect.height + __pHandlerBitmap->GetHeightF());
rect.x = cursorRect.x;
rect.y = cursorRect.y + cursorRect.height;
- FloatRectangle alignedCursorRect = CoordinateSystem::AlignToDevice(cursorRect);
- checkPoint = FloatPoint(cursorRect.x, alignedCursorRect.y + alignedCursorRect.height);
+ checkPoint = FloatPoint(cursorRect.x, cursorRect.y + cursorRect.height);
if (__leftHandler)
{
float cursorHeight = 0.0f;
float cursorRelativeX = 0.0f;
float cursorRelativeY = 0.0f;
+ float cursorHeightDiff = 0.0f;
FloatRectangle absBounds = __pEdit->GetAbsoluteBoundsF(true);
absCursorBounds.width = cursorWidth;
+ cursorHeightDiff = cursorHeight - __calculatedCursorBounds.height;
+
if (cursorHeight > 0.0f)
{
- if (cursorHeight <= __calculatedCursorBounds.height || !clipCursorHeight)
+ if (cursorHeight <= __calculatedCursorBounds.height || (!clipCursorHeight))
{
- absCursorBounds.height = cursorHeight;
+ absCursorBounds.height = cursorHeight;
+
+ if (!clipCursorHeight && __pEdit->GetEditStyle() & EDIT_STYLE_FLEXIBLE && (cursorHeightDiff <= 2.0f))
+ {
+ absCursorBounds.height = __calculatedCursorBounds.height;
+ }
}
else
{
float cursorHeight = 0.0f;
float cursorRelativeX = 0.0f;
float cursorRelativeY = 0.0f;
+ float cursorHeightDiff = 0.0f;
FloatRectangle absBounds = __pEdit->GetAbsoluteBoundsF(true);
absCursorBounds.width = cursorWidth;
+ cursorHeightDiff = cursorHeight - __calculatedCursorBounds.height;
+
if (cursorHeight > 0.0f)
{
if (cursorHeight <= __calculatedCursorBounds.height || !clipCursorHeight)
{
absCursorBounds.height = cursorHeight;
+
+ if (!clipCursorHeight && __pEdit->GetEditStyle() & EDIT_STYLE_FLEXIBLE && (cursorHeightDiff <= 2.0f))
+ {
+ absCursorBounds.height = __calculatedCursorBounds.height;
+ }
}
else
{
if (__calculatedCursorBounds.height > 0)
{
- absCursorBounds.height = __calculatedCursorBounds.height;
+ absCursorBounds.height = __calculatedCursorBounds.height;
}
else
{
- absCursorBounds.height = cursorHeight;
+ absCursorBounds.height = cursorHeight;
}
}
}