summaryrefslogtreecommitdiffstats
path: root/tests/auto/qinputcontext
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/qinputcontext')
-rw-r--r--tests/auto/qinputcontext/tst_qinputcontext.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/auto/qinputcontext/tst_qinputcontext.cpp b/tests/auto/qinputcontext/tst_qinputcontext.cpp
index 5fdd931..444b400 100644
--- a/tests/auto/qinputcontext/tst_qinputcontext.cpp
+++ b/tests/auto/qinputcontext/tst_qinputcontext.cpp
@@ -46,6 +46,7 @@
#include <qlineedit.h>
#include <qplaintextedit.h>
#include <qlayout.h>
+#include <qradiobutton.h>
class tst_QInputContext : public QObject
{
@@ -64,6 +65,7 @@ private slots:
void maximumTextLength();
void filterMouseEvents();
void requestSoftwareInputPanel();
+ void closeSoftwareInputPanel();
};
void tst_QInputContext::maximumTextLength()
@@ -156,5 +158,38 @@ void tst_QInputContext::requestSoftwareInputPanel()
QVERIFY(ic1->lastType != QEvent::RequestSoftwareInputPanel);
}
+void tst_QInputContext::closeSoftwareInputPanel()
+{
+ QWidget w;
+ QLayout *layout = new QVBoxLayout;
+ QLineEdit *le1, *le2;
+ QRadioButton *rb;
+ le1 = new QLineEdit;
+ le2 = new QLineEdit;
+ rb = new QRadioButton;
+ layout->addWidget(le1);
+ layout->addWidget(le2);
+ layout->addWidget(rb);
+ w.setLayout(layout);
+
+ QFilterInputContext *ic1, *ic2;
+ ic1 = new QFilterInputContext;
+ ic2 = new QFilterInputContext;
+ le1->setInputContext(ic1);
+ le2->setInputContext(ic2);
+
+ w.show();
+ QApplication::setActiveWindow(&w);
+
+ // Testing that panel doesn't close between two input methods aware widgets.
+ QTest::mouseClick(le1, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QTest::mouseClick(le2, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QVERIFY(ic2->lastType != QEvent::CloseSoftwareInputPanel);
+
+ // Testing that panel closes when focusing non-aware widget.
+ QTest::mouseClick(rb, Qt::LeftButton, Qt::NoModifier, QPoint(5, 5));
+ QCOMPARE(ic2->lastType, QEvent::CloseSoftwareInputPanel);
+}
+
QTEST_MAIN(tst_QInputContext)
#include "tst_qinputcontext.moc"