aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2012-02-03 12:36:10 +1000
committerQt by Nokia <qt-info@nokia.com>2012-02-06 08:28:35 +0100
commit4cd28a7f8c6abb7a33d19b0c87152d85370373d1 (patch)
treec08812b24c97f04824f8fce1844c5235772af312 /src
parent5260a562a96ddab77ec22693997e2c784e3b6613 (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.cpp8
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();
}