Implement synchronous WS events by flushing.
authorFriedemann Kleint <Friedemann.Kleint@nokia.com>
Tue, 24 Jul 2012 07:40:20 +0000 (09:40 +0200)
committerQt by Nokia <qt-info@nokia.com>
Tue, 31 Jul 2012 18:25:36 +0000 (20:25 +0200)
commit5b49793d8048b51e3f671eb7c390a08999323876
treee42faf1e986e5023ec368fa355b1e3c717d18748
parent0e904279bd14c6d3d32165ff93d22d96e7ff6fd7
Implement synchronous WS events by flushing.

Previously synchronous window system events were
implemented by bypassing the queue and processing
the event immediately. This is not ideal since the
event order is not preserved - there might be "happened
before" events waiting in the queue.

Add QWindowSystemInterface::flushWindowSystemEvents
and change all handleSynchronous* to 1) queue the
event 2) call flushWindowSystemEvents.

flushWindowSystemEvents is almost identical to the
already existing sendWindowSystemEvents with the
exception that it does not call QApp::sendPostedEvents.
Move the common implementation to a new private function.

Task-number: QTBUG-20778

Change-Id: Ie98a83875bc0a14e335e36bed0dd9e0ed4a1dea0
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
src/gui/kernel/qwindowsysteminterface.cpp
src/gui/kernel/qwindowsysteminterface.h
src/plugins/platforms/windows/qwindowswindow.cpp
tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp