qt5base-lts/tests/auto/gui/kernel
Tor Arne Vestbø b5f972361a Introduce QWindow::paintEvent with QPA plumbing
The explicit paint event on QtGui and QPA level allows us to untangle
the expose event, which today has at least 3 different meanings.

It also allows us to follow the platform more closely in its semantics
of when painting can happen. On some platforms a paint can come in
before a window is exposed, e.g. to prepare the first frame. On others
a paint can come in after a window has been de-exposed, to save a
snapshot of the window for use in an application switcher or similar.

The expose keeps its semantics of being a barrier signaling that the
application can now render at will, for example in a threaded render
loop.

There are two compatibility code paths in this patch:

  1. For platform plugins that do not yet report the PaintEvents
     capability, QtGui will synthesize paint events on the platform's
     behalf, based on the existing expose events coming from the platform.

  2. For applications that do not yet implement paintEvent, QtGui will
     send expose events instead, ensuring the same behavior as before.

For now none of the platform plugins deliver paint events natively,
so the first compatibility code path is always active.

Task-numnber: QTBUG-82676
Change-Id: I0fbe0d4cf451d6a1f07f5eab8d376a6c8a53ce8c
Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
2020-08-26 16:44:53 +02:00
..
noqteventloop Introduce QWindow::paintEvent with QPA plumbing 2020-08-26 16:44:53 +02:00
qaction Cover more properties in the QAction test 2020-07-17 08:26:56 +02:00
qactiongroup CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qaddpostroutine Merge remote-tracking branch 'origin/5.15' into dev 2020-04-08 20:11:39 +02:00
qbackingstore Introduce QWindow::paintEvent with QPA plumbing 2020-08-26 16:44:53 +02:00
qclipboard Windows QPA: Move mime-type related classes to the new interface 2020-07-28 13:20:23 +02:00
qcursor CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qdrag CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qevent CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qfileopenevent CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qguiapplication Rename confusingly named QFont/QPalette::resolve overloads 2020-08-25 17:59:10 +02:00
qguieventdispatcher CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qguieventloop CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qguimetatype Cleanup QTypeInfo 2020-08-26 01:03:22 +02:00
qguitimer CMake: Properly handle CONFIG += thread aka Threads::Threads 2020-08-06 19:15:39 +02:00
qguivariant Deprecate the static int based API in QMetaType 2020-08-24 00:19:05 +02:00
qhighdpiscaling Merge remote-tracking branch 'origin/5.15' into dev 2020-04-08 20:11:39 +02:00
qinputdevice CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qinputmethod CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qkeyevent CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qkeysequence Fix warnings about unused variables and functions in tests 2020-07-26 18:06:46 +02:00
qmouseevent Introduce QEvent::isPointerEvent() 2020-08-25 06:34:01 +02:00
qmouseevent_modal CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qopenglwindow CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qpalette Rename confusingly named QFont/QPalette::resolve overloads 2020-08-25 17:59:10 +02:00
qpixelformat CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qrasterwindow CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qscreen CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qshortcut CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qsurfaceformat CMake: Regenerate tests with new qt_ prefixed APIs 2020-07-09 09:38:35 +02:00
qtouchevent Introduce QEvent::isPointerEvent() 2020-08-25 06:34:01 +02:00
qwindow Introduce QWindow::paintEvent with QPA plumbing 2020-08-26 16:44:53 +02:00
.prev_CMakeLists.txt CMake: Skip / ignore failing tests on CMake platforms 2020-07-01 14:55:29 +02:00
CMakeLists.txt CMake: Skip / ignore failing tests on CMake platforms 2020-07-01 14:55:29 +02:00
kernel.pro Begin writing tst_QInputDevice autotest 2020-06-18 08:05:44 +02:00