summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp')
-rw-r--r--tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 1d9cd64321..dd209e5b59 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;
@@ -10001,5 +10004,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"