diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2012-04-18 17:20:24 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-04-19 06:16:28 +0200 |
commit | 7bd68f6447c79aa58a9854bb6c44db00ea36a06a (patch) | |
tree | fd5145dda805cd19a2aa2541567a280a5d1fb915 /src/quick/items/qquicktextedit.cpp | |
parent | 458eb3cce93162dced2649e44c59f27bb088f07c (diff) |
Ensure the cursor delegate position is correct when wrapping.
When inserting text into a TextEdit with implicit width and wrapping
the cursor delegate position has to be updated after the width is
expanded to the implicit width otherwise it will be positioned in a
wrapped location.
Change-Id: Ibcb709ec1b4f6827ea8ae919f2e0c932c7372869
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/quick/items/qquicktextedit.cpp')
-rw-r--r-- | src/quick/items/qquicktextedit.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/quick/items/qquicktextedit.cpp b/src/quick/items/qquicktextedit.cpp index f727c54322..6fefab4166 100644 --- a/src/quick/items/qquicktextedit.cpp +++ b/src/quick/items/qquicktextedit.cpp @@ -897,6 +897,7 @@ void QQuickTextEdit::setCursorPosition(int pos) return; cursor.setPosition(pos); d->control->setTextCursor(cursor); + d->control->updateCursorRectangle(true); } /*! @@ -1143,9 +1144,12 @@ void QQuickTextEdit::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { Q_D(QQuickTextEdit); - if (newGeometry.width() != oldGeometry.width() && d->wrapMode != NoWrap && !d->inLayout) + if (newGeometry.width() != oldGeometry.width() && d->wrapMode != NoWrap && !d->inLayout) { updateSize(); + moveCursorDelegate(); + } QQuickImplicitSizeItem::geometryChanged(newGeometry, oldGeometry); + } /*! @@ -2169,6 +2173,7 @@ void QQuickTextEdit::insert(int position, const QString &text) } else { cursor.insertText(text); } + d->control->updateCursorRectangle(false); } /*! @@ -2186,6 +2191,7 @@ void QQuickTextEdit::remove(int start, int end) cursor.setPosition(start, QTextCursor::MoveAnchor); cursor.setPosition(end, QTextCursor::KeepAnchor); cursor.removeSelectedText(); + d->control->updateCursorRectangle(false); } QT_END_NAMESPACE |