Change sections attached properties atomically.

section, previousSection and nextSection attached properties usually
change together and are are often used together in an expression. Having
them change one at a time results in multiple re-evaluations with
differing results. This can be easily avoided.
[patch] Always check for dragging changed, not just when movement starts

Otherwise, if you flick and then start a new drag before the flick
completes, dragging remains false.
[patch] Don't set property if animation isn't running
[patch] Make Item.enabled property "virtual"

Otherwise you can get very confused connections and bindings as
v4, v8 and the QML engine can all resolve the property differently
in different cases.
[qtdeclarative] Add a touch filter to limit updates to one per frame
[qtdeclarative] When the MouseArea loses grab, an active drag should be cancelled.
[qtdeclarative] Add displayMarginBeginning/End to ListView and GridView

It is common to need to show content outside the visible area of
the view.
[qtdeclarative] Update viewport size when header/footer size changes.
[patch] Protect QQuickPropertyAnimation::target property

Otherwise if the object is destroyed, reading this property
returns an invalid object.
[qtdeclarative] Suppress focusObjectChanged events unless an actual change occurs
[qtdeclarative] Don't prematurely cleanup GL resources

Hidden windows that had the persistent scenegraph flag set were
not being considered when deciding if GL resources could be
destroyed.  This meant that if these windows were reshown, and the
SG context was reestablished, old, invalid scenegraph nodes were
used and could lead to a crash.  The following simple program will cause
this crash:

int main(int argc, char **argv)
{
    QGuiApplication app(argc, argv);

    const char *source = "import QtQuick 2.0; Rectangle { width: 100; height: 100; Text { text: \"Hello\" } }";

    QQmlEngine engine;

    QQuickWindow *textWindow = new QQuickWindow;
    QQmlComponent textComponent(&engine);
    textComponent.setData(source, QUrl());
    QQuickItem *textItem = qobject_cast<QQuickItem *>(textComponent.create());
    textItem->setParentItem(textWindow->contentItem());

    QQuickWindow *closeWindow = new QQuickWindow;
    QQmlComponent closeComponent(&engine);
    closeComponent.setData(source, QUrl());
    QQuickItem *closeItem = qobject_cast<QQuickItem *>(closeComponent.create());
    closeItem->setParentItem(closeWindow->contentItem());

    textWindow->show();

    QTimer::singleShot(1000, textWindow, SLOT(hide()));
    QTimer::singleShot(2000, closeWindow, SLOT(show()));
    QTimer::singleShot(3000, closeWindow, SLOT(deleteLater()));
    QTimer::singleShot(4000, textWindow, SLOT(show()));

    return app.exec();
}

Fixes JB#11032
[qtdeclarative] Mark item as dirty when nodes are cleaned

Otherwise they may not be recreated in the correct configuration.
[qtdeclarative] Mark gui as locked during TryRelease
[qtdeclarative] Remove exposed window in all cases

If a window was destroyed with another window still active, the
invalidateOpenGL() path was not taken and the window was not
removed from the exposed window list.  This is a simpler place
to do it anyway.
Allow &quot; in QQuickStyledText

QString::toHtmlEscaped generates &quot;. QQuickStyledText should be
symmetrical with that function.

Change-Id: I67ea0abe446b5fa1edb53258dca58b84af910e28
[qtdeclarative] Delay renderWindow with a timer

Add an exhaust delay to QSGGuiThreadRenderLoop. Some updates
may be done with posted events, and maybeUpdate event competed
with those, leading to partial updates and frames drawn twice.
[qtdeclarative] Fix touch to mouse synthesis/propagation.
[qtdeclarative] Fix preedit text layout

preeditPosition is relative to the block position
[qtdeclarative] Handle glyph runs with >65536 glyphs
[declarative] Take spacing into account when releasing delegates.