diff options
Diffstat (limited to 'src/quick/items/qquicktextinput.cpp')
-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(); } |