void TextSelectionMagnifier::move(const IntPoint& point)
{
- int viewWidth, viewHeight;
- evas_object_geometry_get(m_viewImpl->view(), 0, 0, &viewWidth, &viewHeight);
+ int viewX, viewY, viewWidth, viewHeight;
+ evas_object_geometry_get(m_viewImpl->view(), &viewX, &viewY, &viewWidth, &viewHeight);
int xPosition = point.x();
- if (xPosition < (m_width / 2))
- xPosition = m_width / 2 + s_magnifierMargin;
- if (xPosition > viewWidth - (m_width / 2))
- xPosition = viewWidth - (m_width / 2) - s_magnifierMargin;
+ if (xPosition < viewX + (m_width / 2))
+ xPosition = viewX + m_width / 2 + s_magnifierMargin;
+ if (xPosition > viewX + viewWidth - (m_width / 2))
+ xPosition = viewX + viewWidth - (m_width / 2) - s_magnifierMargin;
int yPosition = point.y() - ((float)s_magnifierOffsetY * ((float)m_edjeHeight / s_defaultEdjeHeight));
- if (yPosition < (m_height / 2))
- yPosition = m_height / 2;
- if (yPosition > viewHeight - (m_height / 2))
- yPosition = viewHeight - (m_height / 2);
+ if (yPosition < viewY)
+ yPosition = viewY;
+ if (yPosition > viewY + viewHeight)
+ yPosition = viewY + viewHeight;
evas_object_move(m_magnifier, xPosition, yPosition);
}