diff options
author | Jørgen Lind <jorgen.lind@digia.com> | 2013-10-25 14:19:10 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-10-30 08:11:00 +0100 |
commit | ac693bf7541552fad9cb216e200c85b441fcde58 (patch) | |
tree | ff6f9c2558095c40681d4975e9993e6b71e6bca3 /src/gui/kernel/qguiapplication.cpp | |
parent | 396aa7fadee47fc2081abbb224e93ac8d668daa0 (diff) |
Add QGuiApplication::sync() function
This will allow applications to make sure Qt has the same state as the
window system at any given point. The use of this function is
discouraged but it is very useful for auto tests.
Change-Id: I691bff365fc391e9d7213f2607008983505bb774
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Diffstat (limited to 'src/gui/kernel/qguiapplication.cpp')
-rw-r--r-- | src/gui/kernel/qguiapplication.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp index 2e6000625e..077084b80f 100644 --- a/src/gui/kernel/qguiapplication.cpp +++ b/src/gui/kernel/qguiapplication.cpp @@ -2801,6 +2801,27 @@ bool QGuiApplication::isSavingSession() const return d->is_saving_session; } +/*! + \since 5.2 + + Function that can be used to sync Qt state with the Window Systems state. + + This function will first empty Qts events by calling QCoreApplication::processEvents(), + then the platform plugin will sync up with the windowsystem, and finally Qts events + will be delived by another call to QCoreApplication::processEvents(); + + This function is timeconsuming and its use is discouraged. +*/ +void QGuiApplication::sync() +{ + QCoreApplication::processEvents(); + if (QGuiApplicationPrivate::platform_integration + && QGuiApplicationPrivate::platform_integration->hasCapability(QPlatformIntegration::SyncState)) { + QGuiApplicationPrivate::platform_integration->sync(); + QCoreApplication::processEvents(); + } +} + void QGuiApplicationPrivate::commitData() { Q_Q(QGuiApplication); |