Fix tst_qgraphicseffect on Wayland
If we only wait until the window is shown before testing the event delivery, we may be getting a WindowActivation event and subsequent paint event after we start testing. This can cause a shift in the paint events, so that we end up with an unexpected paint event at the end. We should wait until the window is active before we start checking the response to updates, to be sure nothing is pending on the queue still. Note that you'd expect QTest::qWaitForWindowActive() to do this, but this actually falls back to qWaitForWindowExposed() when the platform does not have WindowActivation capability. While there is no real link between WindowActivation capability and waiting for a window to be active, changing the behavior of that function would be too scary, so we just implement an explicit wait in the functions that depend on this. Task-number: QTBUG-91418 Change-Id: Iee40dcfa1377f543ea05042cc5a972270b346708 Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
This commit is contained in:
parent
bea214e765
commit
100840a4fb
@ -694,6 +694,7 @@ void tst_QGraphicsEffect::prepareGeometryChangeInvalidateCache()
|
||||
QGraphicsView view(&scene);
|
||||
view.show();
|
||||
QVERIFY(QTest::qWaitForWindowExposed(&view));
|
||||
QTRY_VERIFY(view.windowHandle()->isActive());
|
||||
QTRY_VERIFY(item->nbPaint >= 1);
|
||||
|
||||
item->nbPaint = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user