diff options
Diffstat (limited to 'src/testlib')
-rw-r--r-- | src/testlib/qtestsystem.h | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/testlib/qtestsystem.h b/src/testlib/qtestsystem.h index 1f10967557..ade5f4c8ac 100644 --- a/src/testlib/qtestsystem.h +++ b/src/testlib/qtestsystem.h @@ -53,9 +53,6 @@ QT_BEGIN_NAMESPACE class QWidget; -#ifdef Q_WS_X11 -extern void qt_x11_wait_for_window_manager(QWidget *w); -#endif namespace QTest { @@ -74,22 +71,25 @@ namespace QTest inline static bool qWaitForWindowShown(QWidget *window) { -#if defined(Q_WS_X11) - qt_x11_wait_for_window_manager(window); - QCoreApplication::processEvents(); -#else Q_UNUSED(window); qWait(200); -#endif return true; } + inline static bool qWaitForWindowShown(QWindow *window) { - Q_UNUSED(window); - qWait(200); + QElapsedTimer timer; + timer.start(); + while (!window->isExposed()) { + int remaining = int(timer.elapsed()) - 1000; + if (remaining <= 0) + break; + QCoreApplication::processEvents(QEventLoop::AllEvents, remaining); + QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete); + QTest::qSleep(10); + } return true; } - } QT_END_NAMESPACE |