Prospective fix to stabilize tst_qwindow::isActive() on Windows 10
It is conceivable that during the try-compare loop of processing
windowing system events we loose and regain the focus. That would
explain the occasional test failure where instead of the expected 3
focus in events, we have received four.
Task-number: QTBUG-77769
Change-Id: I2221440d09a74d4d18a72f7786232b4491cf45a8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 56f084781e
)
Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
parent
d448f2ecb8
commit
dcecaeb7b9
@ -893,7 +893,13 @@ void tst_QWindow::isActive()
|
|||||||
QTRY_COMPARE(QGuiApplication::focusWindow(), &window);
|
QTRY_COMPARE(QGuiApplication::focusWindow(), &window);
|
||||||
QCoreApplication::processEvents();
|
QCoreApplication::processEvents();
|
||||||
QTRY_COMPARE(dialog.received(QEvent::FocusOut), 1);
|
QTRY_COMPARE(dialog.received(QEvent::FocusOut), 1);
|
||||||
QTRY_COMPARE(window.received(QEvent::FocusIn), 3);
|
// We should be checking for exactly three, but since this is a try-compare _loop_, we might
|
||||||
|
// loose and regain focus multiple times in the event of a system popup. This has been observed
|
||||||
|
// to fail on Windows, see QTBUG-77769.
|
||||||
|
QTRY_VERIFY2(window.received(QEvent::FocusIn) >= 3,
|
||||||
|
qPrintable(
|
||||||
|
QStringLiteral("Expected more than three focus in events, received: %1")
|
||||||
|
.arg(window.received(QEvent::FocusIn))));
|
||||||
|
|
||||||
QVERIFY(window.isActive());
|
QVERIFY(window.isActive());
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user