qt5base-lts/tests/auto/corelib/kernel
Tor Arne Vestbø 4bae7158d3 Don't send posted events from QWindowSystemInterface::sendWindowSystemEvents
The responsibility of sendWindowSystemEvents() is to process events from
the window system. Historially that logic was part of the QPA/QWS event
dispatcher, which naturally also sent posted events. Through refactoring,
the code at some point ended up in in the QWindowSystemInterface class,
still with the posting of events in place.

This resulted in QPA event dispatchers adopting a pattern of just calling
sendWindowSystemEvents(), as that would cover both posted and window system
events. Other event dispatchers would call sendWindowSystemEvents(), and
then use a base-class implementation from QtCore for processing events,
resulting in two calls to QCoreApplication::sendPostedEvents() per
iteration of processEvents(). This breaks the contract that processEvents
will only process posted events that has been queued up until then.

We fix this entanglement by removing the sendPostedEvents() call from
QWindowSystemInterface::sendWindowSystemEvents() and move it to the
respective event dispatchers. For some EDs it means an explicit call
to sendPostedEvents, while others were already doing sendPostedEvents
though a separate source (GLib), or using a base-class (UNIX/BB), and
did not need an extra call.

We still keep the ordering of the original sendWindowSystemEvents()
function of first sending posted events, and then processing any
window system events.

Task-number: QTBUG-33485
Change-Id: I8b069e76cea1f37875e72a034c11d09bf3fe166a
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-09-16 15:22:40 +02:00
..
qcoreapplication Fix dead lock in the Qt event handling 2013-07-10 17:57:10 +02:00
qeventdispatcher Don't send posted events from QWindowSystemInterface::sendWindowSystemEvents 2013-09-16 15:22:40 +02:00
qeventloop Merge remote-tracking branch 'origin/stable' into dev 2013-08-14 09:06:31 +02:00
qmath Fix qmath autotest for arm 2013-03-14 19:49:38 +01:00
qmetamethod QMetaMethod and QDBusMetaObject: Give public access to signal methods 2013-09-09 16:21:10 +02:00
qmetaobject QMetaMethod::invoke: compare the QMetaType id of the return types 2013-08-29 17:03:41 +02:00
qmetaobjectbuilder QMetaMethod and QDBusMetaObject: Give public access to signal methods 2013-09-09 16:21:10 +02:00
qmetaproperty Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
qmetatype Core: QDebug and comparison operator support metatypes. 2013-05-27 19:58:19 +02:00
qmimedata tests: Fix some more old references and links to Nokia 2013-02-01 15:27:37 +01:00
qobject Use Q_STATIC_ASSERT to report error about missing Q_OBJECT 2013-09-14 20:33:29 +02:00
qpointer Make it possible to use QPointer<const T> 2013-02-13 15:15:56 +01:00
qsharedmemory Skip unstable autotest 2013-03-12 18:13:37 +01:00
qsignalmapper Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
qsocketnotifier Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
qsystemsemaphore Check existence of QProcess feature before using it on Qt autotests. 2013-01-28 16:06:15 +01:00
qtimer Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
qtranslator tst_qtranslator: Remove QT_DISABLE_DEPRECATED_BEFORE=0 2013-04-12 07:20:05 +02:00
qvariant MetaType: Fix operator{+,-}(int) with the type-erased const_iterators. 2013-09-13 14:37:41 +02:00
qwineventnotifier Update copyright year in Digia's license headers 2013-01-18 09:07:35 +01:00
kernel.pro Android: disable unsupported autotests 2013-03-12 09:16:42 +01:00