Qt 5.3.1 is a bug-fix release. It maintains both forward and backward
compatibility (source and binary) with Qt 5.3.0.

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

  http://qt-project.org/doc/qt-5.3

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

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

  http://bugreports.qt-project.org/

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

****************************************************************************
*                   Important Behavior Changes                             *
****************************************************************************

- Calendar:
  * [QTBUG-38848] Calendar no longer selects dates in the next/previous
    month when dragging the mouse.

****************************************************************************
*                          Library                                         *
****************************************************************************

QtQuick.Controls
----------------

 - Calendar:
   * [QTBUG-38847] Fixed layouting and grid cell calculation

 - ComboBox:
   * [QTBUG-38054] Fixed the height of ComboBox
   * [QTBUG-38384] Fixed the width of the button
   * [QTBUG-38036] Fixed currentText to be correctly updated when the
     current index goes from -1 to 0

 - Menu:
   * [QTBUG-39384] Fixed the disabled state handling for QPA menus

 - ScrollView:
   * [QTBUG-38083] Ensured that child MouseAreas will get mouse events first
   * Fixed the scrollbar handle position calculation
   * Fixed scrolling of parent ScrollViews when reaching the bounds of a
     ScrollView

 - TableView:
   * [QTBUG-38789] Fixed styleData.row to be a binding so it updates
     correctly for dynamically changing models
   * Fixed the position of "filled" rows to move together with content
   * [QTBUG-39337] Fixed TableViewColumn::resizeToContents() to process all
     rows
   * [QTBUG-39393] Fixed the content width calculation with a hidden header
   * [QTBUG-39393] Allowed resizing and scrolling single-column tables

 - TabView:
   * Fixed handling of invalid indexes for TabView::getTab()
   * Fixed the currentIndex to be updated correctly when inserting/removing
     tabs
   * Fixed styleData.activeFocus for the tab-delegate be true when the tab
     button itself has active focus instead of the whole tabbar
   * [QTBUG-38819] Fixed styleData.previousSelected for the tab-delegate

QtQuick.Dialogs
---------------

 - Dialog:
   * [QTBUG-39339] Prevented click passthrough when a dialog is showing

 - FileDialog:
   * [QTBUG-39204] Fixed back and esc keys to reject the dialog
