Do not call QWidget::show/hideEvent twice
While handling events for Widgets and Windows in QWidgetWindow::event makes sense for other events, it causes QWidget::show/hideEvent to be called twice when handled like "the rest". Having that as one case here seems to be the cleanest solution. Removing the call to showEvent from QWidgetPrivate::show_helper (as proposed in the bug report) causes autotests to fail and thus is not a viable option. Additionally the expected result for the task221221 test for QDoubleSpinBox was reverted to the Qt4 value as Qt4 behaviour was restored. Task-number: QTBUG-27199 Task-number: QTBUG-26424 Task-number: QTBUG-22565 Change-Id: I0ac42b09b1a7618de042d27aa5dd1b3d9f30f552 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>bb10
parent
a6f49a4223
commit
d2e5c7787e
|
|
@ -205,6 +205,12 @@ bool QWidgetWindow::event(QEvent *event)
|
|||
handleContextMenuEvent(static_cast<QContextMenuEvent *>(event));
|
||||
return true;
|
||||
#endif
|
||||
|
||||
// Handing show events to widgets (see below) here would cause them to be triggered twice
|
||||
case QEvent::Show:
|
||||
case QEvent::Hide:
|
||||
return QWindow::event(event);
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3968,16 +3968,7 @@ void tst_QWidget::showHideEvent()
|
|||
if (create && !widget.testAttribute(Qt::WA_WState_Created))
|
||||
widget.create();
|
||||
|
||||
if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb")) {
|
||||
QEXPECT_FAIL("window: only show", "QTBUG-26424", Continue);
|
||||
QEXPECT_FAIL("window: show/hide", "QTBUG-26424", Continue);
|
||||
QEXPECT_FAIL("window: show/hide/create", "QTBUG-26424", Continue);
|
||||
}
|
||||
QCOMPARE(widget.numberOfShowEvents, expectedShowEvents);
|
||||
if (m_platform == QStringLiteral("windows") || m_platform == QStringLiteral("xcb")) {
|
||||
QEXPECT_FAIL("window: show/hide", "QTBUG-26424", Continue);
|
||||
QEXPECT_FAIL("window: show/hide/create", "QTBUG-26424", Continue);
|
||||
}
|
||||
QCOMPARE(widget.numberOfHideEvents, expectedHideEvents);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1011,7 +1011,7 @@ void tst_QDoubleSpinBox::task221221()
|
|||
QTest::keyClick(&spin, Qt::Key_1);
|
||||
spin.show();
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&spin));
|
||||
QCOMPARE(spin.text(), QLatin1String("1.00"));
|
||||
QCOMPARE(spin.text(), QLatin1String("1"));
|
||||
}
|
||||
|
||||
void tst_QDoubleSpinBox::task255471_decimalsValidation()
|
||||
|
|
|
|||
|
|
@ -620,7 +620,6 @@ void tst_QMenu::activeSubMenuPosition()
|
|||
// to check that submenu is to the right of the main menu too.
|
||||
#ifndef Q_OS_WINCE_WM
|
||||
QVERIFY(sub->pos().x() > main->pos().x());
|
||||
QEXPECT_FAIL("", "QTBUG-22565", Abort);
|
||||
QCOMPARE(sub->activeAction(), subAction);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue