[Development] Calling QWindow::requestActivate after QWindow::show and before QTest::qWaitForWindowActive
EXT Mitch Curtis
mitch.curtis at qt.io
Tue Aug 12 02:52:33 CEST 2025
Hi,
There's a discussion on https://codereview.qt-project.org/c/qt/qtdeclarative/+/666818 about whether we can standardise (by documenting in some form) that we shouldn't call requestActivate before qWaitForWindowActive. Essentially, existing code in tests looks like this:
window->show();
window->requestActivate();
QVERIFY(QTest::qWaitForWindowActive(window.data()));
And would become this:
window->show();
QVERIFY(QTest::qWaitForWindowActive(window.data()));
As Axel has explained, this causes race conditions on XCB, and apparently is redundant on all platforms:
> To begin with, an autotest should be as close as possible to a real world scenario.
> When the only window around is being shown, it is automatically activated. The additional window->requestActivate() redundant and not a real world scenario. This alone justifies its removal.
I'd like to get agreement that this is the right thing to do on all platforms before proceeding (and then removing it en masse).
Cheers.
Confidential
More information about the Development
mailing list