diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-02-03 12:36:10 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-06 08:28:35 +0100 |
commit | 4cd28a7f8c6abb7a33d19b0c87152d85370373d1 (patch) | |
tree | c08812b24c97f04824f8fce1844c5235772af312 /src | |
parent | 5260a562a96ddab77ec22693997e2c784e3b6613 (diff) |
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 <martin.jones@nokia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/quick/items/qquicktextinput.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
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(); } |