diff options
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp')
-rw-r--r-- | tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp index 1d9cd64321..a24f69b35e 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -399,6 +399,9 @@ private slots: void styleSheetPropagation(); void destroyedSignal(); + + void keyboardModifiers(); + private: bool ensureScreenSize(int width, int height); QWidget *testWidget; @@ -4308,8 +4311,6 @@ void tst_QWidget::qobject_castInDestroyedSlot() QVERIFY(checker.wasQWidget == true); } -Q_DECLARE_METATYPE(QList<QRect>) - // Since X11 WindowManager operations are all async, and we have no way to know if the window // manager has finished playing with the window geometry, this test can't be reliable on X11. @@ -10001,5 +10002,28 @@ void tst_QWidget::taskQTBUG_27643_enterEvents() } #endif // QTEST_NO_CURSOR +class KeyboardWidget : public QWidget +{ +public: + KeyboardWidget(QWidget* parent = 0) : QWidget(parent), m_eventCounter(0) {} + virtual void mousePressEvent(QMouseEvent* ev) Q_DECL_OVERRIDE { + m_modifiers = ev->modifiers(); + m_appModifiers = QApplication::keyboardModifiers(); + ++m_eventCounter; + } + Qt::KeyboardModifiers m_modifiers; + Qt::KeyboardModifiers m_appModifiers; + int m_eventCounter; +}; + +void tst_QWidget::keyboardModifiers() +{ + KeyboardWidget* w = new KeyboardWidget; + QTest::mouseClick(w, Qt::LeftButton, Qt::ControlModifier); + QCOMPARE(w->m_eventCounter, 1); + QCOMPARE(int(w->m_modifiers), int(Qt::ControlModifier)); + QCOMPARE(int(w->m_appModifiers), int(Qt::ControlModifier)); +} + QTEST_MAIN(tst_QWidget) #include "tst_qwidget.moc" |