diff options
Diffstat (limited to 'src/widgets/widgets/qplaintextedit.cpp')
-rw-r--r-- | src/widgets/widgets/qplaintextedit.cpp | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index 17eac9db58..35ec88b881 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -2199,8 +2199,26 @@ QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery query, QVariant a Q_D(const QPlainTextEdit); if (query == Qt::ImHints) return QWidget::inputMethodQuery(query); - const QVariant v = d->control->inputMethodQuery(query, argument); + const QPointF offset = contentOffset(); + switch (argument.type()) { + case QVariant::RectF: + argument = argument.toRectF().translated(-offset); + break; + case QVariant::PointF: + argument = argument.toPointF() - offset; + break; + case QVariant::Rect: + argument = argument.toRect().translated(-offset.toPoint()); + break; + case QVariant::Point: + argument = argument.toPoint() - offset; + break; + default: + break; + } + + const QVariant v = d->control->inputMethodQuery(query, argument); switch (v.type()) { case QVariant::RectF: return v.toRectF().translated(offset); |