Use async delivery when flushing events from secondary threads

Commit 33d748bb8 (Allow granular synchronous and asynchronous delivery of
QPA events) replaced a postWindowSystemEvent() with a SynchronousDelivery,
which was completely broken, as the delivery is already guarded by a mutex
wait.

Change-Id: I929fddc4e3403f943e8fe0677b5a46bf58419575
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
bb10
Tor Arne Vestbø 2016-11-03 16:14:07 +01:00
parent ea9a8672a1
commit a21ffd44b3
1 changed files with 1 additions and 1 deletions

View File

@ -682,7 +682,7 @@ bool QWindowSystemInterface::flushWindowSystemEvents(QEventLoop::ProcessEventsFl
// deferredFlushWindowSystemEvents from the Gui thread.
QMutexLocker locker(&QWindowSystemInterfacePrivate::flushEventMutex);
QWindowSystemInterfacePrivate::FlushEventsEvent *e = new QWindowSystemInterfacePrivate::FlushEventsEvent(flags);
QWindowSystemInterfacePrivate::handleWindowSystemEvent<SynchronousDelivery>(e);
QWindowSystemInterfacePrivate::handleWindowSystemEvent<AsynchronousDelivery>(e);
QWindowSystemInterfacePrivate::eventsFlushed.wait(&QWindowSystemInterfacePrivate::flushEventMutex);
} else {
sendWindowSystemEvents(flags);