diff options
author | Samuel Rødal <samuel.rodal@digia.com> | 2013-02-14 08:35:23 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-02-14 10:55:33 +0100 |
commit | 17e8286fef874630cb2703bd20885c6005bf674a (patch) | |
tree | 5c2477f03da7d631b71236702cee5f91fd112d5f /tests | |
parent | ff86f6ba4c730941e13e45c670828bb07d92c380 (diff) |
Fixed mouse double click events not bubbling up to parent widgets.
The bug was caused by changes b371f3f943703840d0dfbe30505018bcca06e260
and 3bb902495291c50a2f06e8e03a62a647db3e5cd4, which removed the event
forwarding that QWidget::mouseDoubleClickEvent() used to do without
making sure to call ignore() on the event like
QWidget::mousePressEvent() does.
Task-number: QTBUG-29680
Change-Id: I98af8052ad3dd1dea15d07a710aa9212ef5e4a68
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp | 26 |
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 ab1500ee32..c1927c9d1f 100644 --- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp +++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp @@ -411,6 +411,7 @@ private slots: void destroyedSignal(); void keyboardModifiers(); + void mouseDoubleClickBubbling_QTBUG29680(); private: bool ensureScreenSize(int width, int height); @@ -10047,5 +10048,30 @@ void tst_QWidget::keyboardModifiers() QCOMPARE(int(w->m_appModifiers), int(Qt::ControlModifier)); } +class DClickWidget : public QWidget +{ +public: + DClickWidget() : triggered(false) {} + void mouseDoubleClickEvent(QMouseEvent *) + { + triggered = true; + } + bool triggered; +}; + +void tst_QWidget::mouseDoubleClickBubbling_QTBUG29680() +{ + DClickWidget parent; + QWidget child(&parent); + parent.resize(200, 200); + child.resize(200, 200); + parent.show(); + QVERIFY(QTest::qWaitForWindowExposed(&parent)); + + QTest::mouseDClick(&child, Qt::LeftButton); + + QTRY_VERIFY(parent.triggered); +} + QTEST_MAIN(tst_QWidget) #include "tst_qwidget.moc" |