aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquicktextinput.cpp
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2011-12-09 16:30:46 +1000
committerQt by Nokia <qt-info@nokia.com>2011-12-12 07:05:45 +0100
commita1a4abe377045afee3b49639fd1e072a7cbd8e19 (patch)
tree17f665c1057095173674f98fc3477e62211e893f /src/quick/items/qquicktextinput.cpp
parentb156b5d8c313f3b3711b1da6e06768473db3cf12 (diff)
Size TextInput cursor correctly.
Use the cursorRectangle property to size and position the TextNode's cursor rather than recalculating the rectangle in an incompatible way. Task-number: QTBUG-22386 Change-Id: I8ee02b590796b0304683b9b246aba1e59c1fd6a5 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'src/quick/items/qquicktextinput.cpp')
-rw-r--r--src/quick/items/qquicktextinput.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/quick/items/qquicktextinput.cpp b/src/quick/items/qquicktextinput.cpp
index e9caaf2ee8..b389329243 100644
--- a/src/quick/items/qquicktextinput.cpp
+++ b/src/quick/items/qquicktextinput.cpp
@@ -1296,13 +1296,7 @@ QSGNode *QQuickTextInput::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData
if (!d->textLayoutDirty) {
QSGSimpleRectNode *cursorNode = node->cursorNode();
if (cursorNode != 0 && !isReadOnly()) {
- QFontMetrics fm = QFontMetrics(d->font);
- // the y offset is there to keep the baseline constant in case we have script changes in the text.
- QPoint offset(-d->hscroll, fm.ascent() - d->control->ascent());
- offset.rx() += d->control->cursorToX();
-
- QRect br(boundingRect().toRect());
- cursorNode->setRect(QRectF(offset, QSizeF(d->control->cursorWidth(), br.height())));
+ cursorNode->setRect(cursorRectangle());
if (!d->cursorVisible
|| (!d->control->cursorBlinkStatus() && d->control->cursorBlinkPeriod() > 0)) {
@@ -1336,8 +1330,7 @@ QSGNode *QQuickTextInput::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData
}
if (!isReadOnly() && d->cursorItem == 0) {
- offset.rx() += d->control->cursorToX();
- node->setCursor(QRectF(offset, QSizeF(d->control->cursorWidth(), br.height())), d->color);
+ node->setCursor(cursorRectangle(), d->color);
if (!d->cursorVisible
|| (!d->control->cursorBlinkStatus() && d->control->cursorBlinkPeriod() > 0)) {
d->hideCursor();