diff options
author | Ville Voutilainen <ville.voutilainen@qt.io> | 2018-02-26 15:57:55 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@qt.io> | 2018-02-27 08:53:09 +0000 |
commit | 2eec3272c78a3af1e362906654aa6d50b33a4c50 (patch) | |
tree | b0ccd27f123221c157aa5241d4d1e9bf04db1317 /src | |
parent | 1f6bd8bfb2206480ca5b5c267da38659e6cff20e (diff) |
Make qWaitForWindowActive more robust
Based on the information we got from Unity developers, we need
to check for window's frame geometry to be set, not just window's
position to be set. On various window managers, a window is
'ready' once the frame geometry is set. This fixes autotest
flakiness of tests that use qWaitForWindowActive.
Task-number: QTBUG-66216
Change-Id: Icb664e7b802b474919f3b058c00681574522ccbe
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/testlib/qtestsystem.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/testlib/qtestsystem.h b/src/testlib/qtestsystem.h index 79fe68004e..046fe1a3e7 100644 --- a/src/testlib/qtestsystem.h +++ b/src/testlib/qtestsystem.h @@ -114,7 +114,7 @@ namespace QTest { bool becameActive = qWaitFor([&]() { return window->isActive(); }, timeout); - // Try ensuring the platform window receives the real position. + // Try ensuring the platform window receives the real position and geometry. // (i.e. that window->pos() reflects reality) // isActive() ( == FocusIn in case of X) does not guarantee this. It seems some WMs randomly // send the final ConfigureNotify (the one with the non-bogus 0,0 position) after the FocusIn. @@ -122,7 +122,7 @@ namespace QTest // qWaitForWindowShown() will generate bogus results. if (becameActive) { int waitNo = 0; // 0, 0 might be a valid position after all, so do not wait for ever - while (window->position().isNull()) { + while (window->frameGeometry().isNull()) { if (waitNo++ > timeout / 10) break; qWait(10); |