diff options
author | Liang Qi <liang.qi@qt.io> | 2016-05-04 16:14:45 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-05-04 16:14:45 +0200 |
commit | 944b6878df86a81f03377625b2be2797c2e13b9b (patch) | |
tree | 80ace12e33f7a4187a0509949cc7bcdd6a02f856 /src/quick/items/qquicktextcontrol.cpp | |
parent | 8f7b36f8999f5f906d6a425d6e54c6c86be4c77e (diff) | |
parent | 9bb640625d1e929f8caac34fa0a0fedeef8687ca (diff) |
Merge remote-tracking branch 'origin/5.7' into dev
Change-Id: I694ac053b53b669ef5578fd0074de5ce109f7a09
Diffstat (limited to 'src/quick/items/qquicktextcontrol.cpp')
-rw-r--r-- | src/quick/items/qquicktextcontrol.cpp | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/quick/items/qquicktextcontrol.cpp b/src/quick/items/qquicktextcontrol.cpp index 127b51948a..8b6cc221d5 100644 --- a/src/quick/items/qquicktextcontrol.cpp +++ b/src/quick/items/qquicktextcontrol.cpp @@ -1399,10 +1399,16 @@ QVariant QQuickTextControl::inputMethodQuery(Qt::InputMethodQuery property, QVar switch (property) { case Qt::ImCursorRectangle: return cursorRect(); + case Qt::ImAnchorRectangle: + return anchorRect(); case Qt::ImFont: return QVariant(d->cursor.charFormat().font()); - case Qt::ImCursorPosition: + case Qt::ImCursorPosition: { + const QPointF pt = argument.toPointF(); + if (!pt.isNull()) + return QVariant(d->doc->documentLayout()->hitTest(pt, Qt::FuzzyHit) - block.position()); return QVariant(d->cursor.position() - block.position()); + } case Qt::ImSurroundingText: return QVariant(block.text()); case Qt::ImCurrentSelection: @@ -1527,6 +1533,17 @@ void QQuickTextControl::setCursorVisible(bool visible) && (d->interactionFlags & (Qt::TextEditable | Qt::TextSelectableByKeyboard))); } +QRectF QQuickTextControl::anchorRect() const +{ + Q_D(const QQuickTextControl); + QRectF rect; + QTextCursor cursor = d->cursor; + if (!cursor.isNull()) { + rect = d->rectForPosition(cursor.anchor()); + } + return rect; +} + QRectF QQuickTextControl::cursorRect(const QTextCursor &cursor) const { Q_D(const QQuickTextControl); |