From 4cd28a7f8c6abb7a33d19b0c87152d85370373d1 Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Fri, 3 Feb 2012 12:36:10 +1000 Subject: Fix vertical offset of TextInput.positionToRectangle. Offset the y value of the rectangle by the vertical scroll and line offset. Task-number: QTBUG-23934 Change-Id: I43815b480f43a089a9a03b0aec32dfc0598b6154 Reviewed-by: Martin Jones --- src/quick/items/qquicktextinput.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp index 65850b9a08..39dcc119e0 100644 --- a/src/quick/items/qquicktextinput.cpp +++ b/src/quick/items/qquicktextinput.cpp @@ -1299,11 +1299,13 @@ void QQuickTextInput::createCursor() QRectF QQuickTextInput::positionToRectangle(int pos) const { Q_D(const QQuickTextInput); - if (pos > d->m_cursor) + if (d->m_echoMode == NoEcho) + pos = 0; + else if (pos > d->m_cursor) pos += d->preeditAreaText().length(); - QTextLine l = d->m_textLayout.lineAt(0); + QTextLine l = d->m_textLayout.lineForTextPosition(pos); return l.isValid() - ? QRectF(l.cursorToX(pos) - d->hscroll, 0.0, d->m_cursorWidth, l.height()) + ? QRectF(l.cursorToX(pos) - d->hscroll, l.y() - d->vscroll, d->m_cursorWidth, l.height()) : QRectF(); } -- cgit v1.2.3