From 197b145a23564910f6316ca0b2f9a1b39efaf9ef Mon Sep 17 00:00:00 2001 From: Tasuku Suzuki Date: Tue, 22 May 2012 08:14:34 +0900 Subject: Fixed inputMethodQuery() for Qt::ImHints to return QWidget::inputMethodHints() Change-Id: I46735c553e0cb4689cd0c53a69d07ed61ba56bf6 Reviewed-by: Joona Petrell --- src/widgets/widgets/qplaintextedit.cpp | 28 ++++++++++++++++++---------- src/widgets/widgets/qtextedit.cpp | 28 ++++++++++++++++++---------- 2 files changed, 36 insertions(+), 20 deletions(-) (limited to 'src') diff --git a/src/widgets/widgets/qplaintextedit.cpp b/src/widgets/widgets/qplaintextedit.cpp index c31ac65046..60160c91c3 100644 --- a/src/widgets/widgets/qplaintextedit.cpp +++ b/src/widgets/widgets/qplaintextedit.cpp @@ -2127,16 +2127,24 @@ void QPlainTextEdit::scrollContentsBy(int dx, int /*dy*/) QVariant QPlainTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const { Q_D(const QPlainTextEdit); - QVariant v = d->control->inputMethodQuery(property); - const QPoint offset(-d->horizontalOffset(), -0); - if (v.type() == QVariant::RectF) - v = v.toRectF().toRect().translated(offset); - else if (v.type() == QVariant::PointF) - v = v.toPointF().toPoint() + offset; - else if (v.type() == QVariant::Rect) - v = v.toRect().translated(offset); - else if (v.type() == QVariant::Point) - v = v.toPoint() + offset; + QVariant v; + switch (property) { + case Qt::ImHints: + v = QWidget::inputMethodQuery(property); + break; + default: + v = d->control->inputMethodQuery(property); + const QPoint offset(-d->horizontalOffset(), -0); + if (v.type() == QVariant::RectF) + v = v.toRectF().toRect().translated(offset); + else if (v.type() == QVariant::PointF) + v = v.toPointF().toPoint() + offset; + else if (v.type() == QVariant::Rect) + v = v.toRect().translated(offset); + else if (v.type() == QVariant::Point) + v = v.toPoint() + offset; + } + return v; } diff --git a/src/widgets/widgets/qtextedit.cpp b/src/widgets/widgets/qtextedit.cpp index 3dbd24705b..c9de35a261 100644 --- a/src/widgets/widgets/qtextedit.cpp +++ b/src/widgets/widgets/qtextedit.cpp @@ -1665,16 +1665,24 @@ void QTextEdit::scrollContentsBy(int dx, int dy) QVariant QTextEdit::inputMethodQuery(Qt::InputMethodQuery property) const { Q_D(const QTextEdit); - QVariant v = d->control->inputMethodQuery(property); - const QPoint offset(-d->horizontalOffset(), -d->verticalOffset()); - if (v.type() == QVariant::RectF) - v = v.toRectF().toRect().translated(offset); - else if (v.type() == QVariant::PointF) - v = v.toPointF().toPoint() + offset; - else if (v.type() == QVariant::Rect) - v = v.toRect().translated(offset); - else if (v.type() == QVariant::Point) - v = v.toPoint() + offset; + QVariant v; + switch (property) { + case Qt::ImHints: + v = QWidget::inputMethodQuery(property); + break; + default: + v = d->control->inputMethodQuery(property); + const QPoint offset(-d->horizontalOffset(), -d->verticalOffset()); + if (v.type() == QVariant::RectF) + v = v.toRectF().toRect().translated(offset); + else if (v.type() == QVariant::PointF) + v = v.toPointF().toPoint() + offset; + else if (v.type() == QVariant::Rect) + v = v.toRect().translated(offset); + else if (v.type() == QVariant::Point) + v = v.toPoint() + offset; + } + return v; } -- cgit v1.2.3