summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/kernel/qinputmethod.cpp4
-rw-r--r--tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp9
2 files changed, 9 insertions, 4 deletions
diff --git a/src/gui/kernel/qinputmethod.cpp b/src/gui/kernel/qinputmethod.cpp
index de00396e40..9e724446ff 100644
--- a/src/gui/kernel/qinputmethod.cpp
+++ b/src/gui/kernel/qinputmethod.cpp
@@ -154,9 +154,9 @@ QRectF QInputMethod::cursorRectangle() const
QInputMethodQueryEvent query(Qt::ImCursorRectangle);
QGuiApplication::sendEvent(d->inputItem.data(), &query);
- QRect r = query.value(Qt::ImCursorRectangle).toRect();
+ QRectF r = query.value(Qt::ImCursorRectangle).toRectF();
if (!r.isValid())
- return QRect();
+ return QRectF();
return d->inputItemTransform.mapRect(r);
}
diff --git a/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp b/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp
index 2ca921b557..c906ebaabe 100644
--- a/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp
+++ b/tests/auto/gui/kernel/qinputmethod/tst_qinputmethod.cpp
@@ -50,7 +50,7 @@ class InputItem : public QObject
{
Q_OBJECT
public:
- InputItem() : m_enabled(true) {}
+ InputItem() : cursorRectangle(1, 2, 3, 4), m_enabled(true) {}
bool event(QEvent *event)
{
@@ -59,7 +59,7 @@ public:
if (query->queries() & Qt::ImEnabled)
query->setValue(Qt::ImEnabled, m_enabled);
if (query->queries() & Qt::ImCursorRectangle)
- query->setValue(Qt::ImCursorRectangle, QRectF(1, 2, 3, 4));
+ query->setValue(Qt::ImCursorRectangle, cursorRectangle);
if (query->queries() & Qt::ImPreferredLanguage)
query->setValue(Qt::ImPreferredLanguage, QString("English"));
m_lastQueries = query->queries();
@@ -76,6 +76,7 @@ public:
}
}
+ QRectF cursorRectangle;
Qt::InputMethodQueries m_lastQueries;
bool m_enabled;
};
@@ -226,7 +227,11 @@ void tst_qinputmethod::cursorRectangle()
QCOMPARE(qApp->inputMethod()->cursorRectangle(), transform.mapRect(QRectF(1, 2, 3, 4)));
+ m_inputItem.cursorRectangle = QRectF(1.5, 2, 1, 8);
+ QCOMPARE(qApp->inputMethod()->cursorRectangle(), transform.mapRect(QRectF(1.5, 2, 1, 8)));
+
// reset
+ m_inputItem.cursorRectangle = QRectF(1, 2, 3, 4);
qApp->inputMethod()->setInputItemTransform(QTransform());
}