Qt 5.13.2 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.13.0 through 5.13.1.

For more details, refer to the online documentation included in this
distribution. The documentation is also available online:

https://doc.qt.io/qt-5/index.html

The Qt version 5.13 series is binary compatible with the 5.12.x series.
Applications compiled for 5.12 will continue to run with 5.13.

Some of the changes listed in this file include issue tracking numbers
corresponding to tasks in the Qt Bug Tracker:

https://bugreports.qt.io/

Each of these identifiers can be entered in the bug tracker to obtain more
information about a particular change.

****************************************************************************
*                                Compositor                                *
****************************************************************************

 - Fixed various rounding errors related to touch and mouse input.
 - Fixed touch and click events on right and left surface borders not being
   forwarded to clients.
 - Fixed a crash when closing windows via XdgToplevel.sendClose().
 - [QTBUG-78969] Fixed a crash when trying to maximize an XdgToplevel with
   no WaylandOutput assigned.

 - Important Behavior Changes:
   * Between version 5.11 and 5.12 binary compatibility for the wayland
     compositor module was broken by adding an additional member to various
     classes. This was not apparent from user code as the member was behind
     an #ifdef which would only be set while compiling Qt. As several
     versions of Qt incompatible to 5.11 have already been released now,
     rolling back the incompatible change would introduce further
     incompatibility. Therefore, the change is made consistent by
     unconditionally adding the member to the headers.

****************************************************************************
*                                QPA plugin                                *
****************************************************************************

 - Fixed a bug where key repeat would not be disabled when configured by the
   compositor.
 - Fixed a freeze that happened when starting a drag-and-drop operation
   without a valid source surface.
 - Fixed a bug where some windows would never become visible.
 - Fixed a bug where clipboard contents would be truncated for large pastes.
 - [QTBUG-76504] Fixed a crash that could happen if createPlatformWindow and
   createPlatformOpenGLContext were called on the GUI and render thread
   simultaneously.
 - Fixed a crash that could happen when destroying a window.
 - Qt now handles libwayland errors by calling qFatal() instead of exit(1).
   This allows applications to clean up.
 - Fixed a bug where touch focus would be cleared on any touch point
   release, also during multi-touch sequences.
 - [QTBUG-77987] Fixed a bug where the cursor rectangle for virtual keyboard
   was incorrectly positioned.
 - Fixed a freeze that could happen if doing recursive waiting for
   compositor frame callbacks.
 - Fixed touch rounding errors. Clients now receive fractional instead of
   integer positions.
 - [QTBUG-78478] Fixed a crash that could happen if setting absurdly long
   window titles with UTF-16 code units that convert to multiple bytes in
   UTF-8.
