Merge pull request #26 from rburchell/master

Improve memory usage of QQuickTextNode.
[qtdeclarative] Suppress focusObjectChanged events unless an actual change occurs
Merge pull request #27 from matthewvogt/focus-object-changed

[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.
Merge pull request #28 from aaronkennedy/master

[qtdeclarative] Don't prematurely cleanup GL resources
Merge pull request #29 from aaronkennedy/jb10101

[qtdeclarative] Mark item as dirty when nodes are cleaned
[qtdeclarative] Mark gui as locked during TryRelease
Fix next section calculation.

Partial revert of a9f924975fbd78d67c8edc185767c9f2f19d6c27
Merge pull request #30 from aaronkennedy/jb11447

[qtdeclarative] Mark gui as locked during TryRelease
Merge pull request #31 from martinjones/master

Fix next section calculation.
[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
Merge pull request #32 from special/master

[qtdeclarative] Allow &quot; in QQuickStyledText
Merge pull request #33 from aaronkennedy/exposecrash

[qtdeclarative] Remove exposed window in all cases
[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.
Merge pull request #34 from mikkoharju/exhaustdelay

[qtdeclarative] Delay renderWindow with a timer
[qtdeclarative] Fix touch to mouse synthesis/propagation.
Merge pull request #35 from martinjones/touchtomouse

[qtdeclarative] Fix touch to mouse synthesis/propagation.
[qtdeclarative] Fix mouse event filtering regression introduced by 42284e3f