From 2ecf32919fd3747f537df14c938d2520d240a993 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 13 Nov 2009 17:07:15 +1000 Subject: XMLHttpRequest tests --- src/declarative/qml/qmlxmlhttprequest.cpp | 47 ++++-- .../declarative/xmlhttprequest/data/document.qml | 3 + .../declarative/xmlhttprequest/data/element.qml | 22 +++ .../data/getAllResponseHeaders_args.qml | 23 +++ .../data/getAllResponseHeaders_sent.qml | 20 +++ .../data/getAllResponseHeaders_unsent.qml | 16 +++ .../xmlhttprequest/data/getResponseHeader_args.qml | 23 +++ .../xmlhttprequest/data/getResponseHeader_sent.qml | 20 +++ .../data/getResponseHeader_unsent.qml | 16 +++ .../xmlhttprequest/data/invalidMethodUsage.qml | 160 +++++++++++++++++++++ .../declarative/xmlhttprequest/data/open_user.qml | 53 +++++++ .../xmlhttprequest/data/send_data.4.qml | 1 - .../xmlhttprequest/data/send_data.7.qml | 23 +++ .../xmlhttprequest/data/setRequestHeader_args.qml | 18 +++ .../data/setRequestHeader_illegalName.qml | 2 + .../xmlhttprequest/tst_xmlhttprequest.cpp | 159 ++++++++++++++++++++ 16 files changed, 590 insertions(+), 16 deletions(-) create mode 100644 tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_args.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_sent.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_unsent.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/getResponseHeader_args.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/getResponseHeader_sent.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/getResponseHeader_unsent.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/invalidMethodUsage.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/open_user.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/send_data.7.qml create mode 100644 tests/auto/declarative/xmlhttprequest/data/setRequestHeader_args.qml diff --git a/src/declarative/qml/qmlxmlhttprequest.cpp b/src/declarative/qml/qmlxmlhttprequest.cpp index 848533c..72af43d 100644 --- a/src/declarative/qml/qmlxmlhttprequest.cpp +++ b/src/declarative/qml/qmlxmlhttprequest.cpp @@ -91,16 +91,16 @@ namespace { -class NodeImpl : public QmlRefCount +class DocumentImpl; +class NodeImpl { public: - NodeImpl() : type(Element), parent(0) {} + NodeImpl() : type(Element), document(0), parent(0) {} virtual ~NodeImpl() { - if (parent) D(parent); for (int ii = 0; ii < children.count(); ++ii) - D(children.at(ii)); + delete children.at(ii); for (int ii = 0; ii < attributes.count(); ++ii) - D(attributes.at(ii)); + delete attributes.at(ii); } // These numbers are copied from the Node IDL definition @@ -125,18 +125,22 @@ public: QString data; + void addref(); + void release(); + + DocumentImpl *document; NodeImpl *parent; QList children; QList attributes; }; -class DocumentImpl : public NodeImpl +class DocumentImpl : public QmlRefCount, public NodeImpl { public: DocumentImpl() : root(0) { type = Document; } virtual ~DocumentImpl() { - if (root) D(root); + if (root) delete root; } QString version; @@ -144,6 +148,9 @@ public: bool isStandalone; NodeImpl *root; + + void addref() { QmlRefCount::addref(); } + void release() { QmlRefCount::release(); } }; class NamedNodeMap @@ -312,6 +319,16 @@ Q_DECLARE_METATYPE(Node); Q_DECLARE_METATYPE(NodeList); Q_DECLARE_METATYPE(NamedNodeMap); +void NodeImpl::addref() +{ + A(document); +} + +void NodeImpl::release() +{ + D(document); +} + QScriptValue Node::nodeName(QScriptContext *context, QScriptEngine *engine) { Node node = qscriptvalue_cast(context->thisObject()); @@ -616,6 +633,7 @@ QScriptValue Document::load(QScriptEngine *engine, const QString &data) case QXmlStreamReader::StartDocument: Q_ASSERT(!document); document = new DocumentImpl; + document->document = document; document->version = reader.documentVersion().toString(); document->encoding = reader.documentEncoding().toString(); document->isStandalone = reader.isStandaloneDocument(); @@ -626,25 +644,25 @@ QScriptValue Document::load(QScriptEngine *engine, const QString &data) { Q_ASSERT(document); NodeImpl *node = new NodeImpl; + node->document = document; node->namespaceUri = reader.namespaceUri().toString(); node->name = reader.name().toString(); if (nodeStack.isEmpty()) { document->root = node; } else { node->parent = nodeStack.top(); - A(node->parent); node->parent->children.append(node); } nodeStack.append(node); foreach (const QXmlStreamAttribute &a, reader.attributes()) { NodeImpl *attr = new NodeImpl; + attr->document = document; attr->type = NodeImpl::Attr; attr->namespaceUri = a.namespaceUri().toString(); attr->name = a.name().toString(); attr->data = a.value().toString(); attr->parent = node; - A(attr->parent); node->attributes.append(attr); } } @@ -655,9 +673,9 @@ QScriptValue Document::load(QScriptEngine *engine, const QString &data) case QXmlStreamReader::Characters: { NodeImpl *node = new NodeImpl; + node->document = document; node->type = reader.isCDATA()?NodeImpl::CDATA:NodeImpl::Text; node->parent = nodeStack.top(); - A(node->parent); node->parent->children.append(node); node->data = reader.text().toString(); } @@ -827,8 +845,7 @@ NamedNodeMapClass::QueryFlags NamedNodeMapClass::queryProperty(const QScriptValu return 0; NamedNodeMap map = qscriptvalue_cast(object.data()); - if (map.isNull()) - return 0; + Q_ASSERT(!map.isNull()); bool ok = false; QString nameString = name.toString(); @@ -1307,7 +1324,7 @@ static QScriptValue qmlxmlhttprequest_setRequestHeader(QScriptContext *context, THROW_REFERENCE("Not an XMLHttpRequest object"); if (context->argumentCount() != 2) - THROW_SYNTAX("Incorrect argument count"); + THROW_DOM(SYNTAX_ERR, "Incorrect argument count"); if (request->readyState() != QmlXMLHttpRequest::Opened || @@ -1388,7 +1405,7 @@ static QScriptValue qmlxmlhttprequest_getResponseHeader(QScriptContext *context, THROW_REFERENCE("Not an XMLHttpRequest object"); if (context->argumentCount() != 1) - THROW_SYNTAX("Incorrect argument count"); + THROW_DOM(SYNTAX_ERR, "Incorrect argument count"); if (request->readyState() != QmlXMLHttpRequest::Loading && request->readyState() != QmlXMLHttpRequest::Done && @@ -1408,7 +1425,7 @@ static QScriptValue qmlxmlhttprequest_getAllResponseHeaders(QScriptContext *cont THROW_REFERENCE("Not an XMLHttpRequest object"); if (context->argumentCount() != 0) - THROW_SYNTAX("Incorrect argument count"); + THROW_DOM(SYNTAX_ERR, "Incorrect argument count"); if (request->readyState() != QmlXMLHttpRequest::Loading && request->readyState() != QmlXMLHttpRequest::Done && diff --git a/tests/auto/declarative/xmlhttprequest/data/document.qml b/tests/auto/declarative/xmlhttprequest/data/document.qml index 7601a10..ce9e35f 100644 --- a/tests/auto/declarative/xmlhttprequest/data/document.qml +++ b/tests/auto/declarative/xmlhttprequest/data/document.qml @@ -25,6 +25,9 @@ Object { if (document.nodeValue != null) return; + if (document.parentNode != null) + return; + // ### Test other node properties // ### test encoding (what is a valid qt encoding?) xmlTest = true; diff --git a/tests/auto/declarative/xmlhttprequest/data/element.qml b/tests/auto/declarative/xmlhttprequest/data/element.qml index 79620bf..228db18 100644 --- a/tests/auto/declarative/xmlhttprequest/data/element.qml +++ b/tests/auto/declarative/xmlhttprequest/data/element.qml @@ -32,6 +32,15 @@ Object { if (e.childNodes[childTagNames.length + 1] != null) return; + // Check writing fails + e.childNodes[0] = null; + if (e.childNodes[0] == null) + return; + + e.childNodes[10] = 10; + if (e.childNodes[10] != null) + return; + if (e.firstChild.tagName != e.childNodes[0].tagName) return; @@ -70,6 +79,19 @@ Object { if (attrIdx2 != null) return; + // Check writing fails + e.attributes[0] = null; + if (e.attributes[0] == null) + return; + + e.attributes["attr"] = null; + if (e.attributes["attr"] == null) + return; + + e.attributes["attr3"] = 10; + if (e.attributes["attr3"] != null) + return; + // Check person and fruit sub elements if (person.parentNode.nodeName != "root") return; diff --git a/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_args.qml b/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_args.qml new file mode 100644 index 0000000..c2cf898 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_args.qml @@ -0,0 +1,23 @@ +import Qt 4.6 + +Object { + property bool exceptionThrown: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + x.open("GET", "testdocument.html"); + x.send(); + + x.onreadystatechange = function() { + if (x.readyState == XMLHttpRequest.DONE) { + try { + x.getAllResponseHeaders("Test-header"); + } catch (e) { + if (e.code == DOMException.SYNTAX_ERR) + exceptionThrown = true; + } + } + } + } +} diff --git a/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_sent.qml b/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_sent.qml new file mode 100644 index 0000000..9583f9d --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_sent.qml @@ -0,0 +1,20 @@ +import Qt 4.6 + +Object { + property bool test: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + x.open("GET", "testdocument.html"); + x.send(); + + try { + x.getAllResponseHeaders(); + } catch (e) { + if (e.code == DOMException.INVALID_STATE_ERR) + test = true; + } + } +} + diff --git a/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_unsent.qml b/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_unsent.qml new file mode 100644 index 0000000..fac5259 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/getAllResponseHeaders_unsent.qml @@ -0,0 +1,16 @@ +import Qt 4.6 + +Object { + property bool test: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + try { + x.getAllResponseHeaders(); + } catch (e) { + if (e.code == DOMException.INVALID_STATE_ERR) + test = true; + } + } +} diff --git a/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_args.qml b/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_args.qml new file mode 100644 index 0000000..ca7aed8 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_args.qml @@ -0,0 +1,23 @@ +import Qt 4.6 + +Object { + property bool exceptionThrown: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + x.open("GET", "testdocument.html"); + x.send(); + + x.onreadystatechange = function() { + if (x.readyState == XMLHttpRequest.DONE) { + try { + x.getResponseHeader(); + } catch (e) { + if (e.code == DOMException.SYNTAX_ERR) + exceptionThrown = true; + } + } + } + } +} diff --git a/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_sent.qml b/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_sent.qml new file mode 100644 index 0000000..148a19c --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_sent.qml @@ -0,0 +1,20 @@ +import Qt 4.6 + +Object { + property bool test: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + x.open("GET", "testdocument.html"); + x.send(); + + try { + x.getResponseHeader("Test-header"); + } catch (e) { + if (e.code == DOMException.INVALID_STATE_ERR) + test = true; + } + } +} + diff --git a/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_unsent.qml b/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_unsent.qml new file mode 100644 index 0000000..5abdf0a --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/getResponseHeader_unsent.qml @@ -0,0 +1,16 @@ +import Qt 4.6 + +Object { + property bool test: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + try { + x.getResponseHeader("Test-header"); + } catch (e) { + if (e.code == DOMException.INVALID_STATE_ERR) + test = true; + } + } +} diff --git a/tests/auto/declarative/xmlhttprequest/data/invalidMethodUsage.qml b/tests/auto/declarative/xmlhttprequest/data/invalidMethodUsage.qml new file mode 100644 index 0000000..893eb8b --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/invalidMethodUsage.qml @@ -0,0 +1,160 @@ +import Qt 4.6 + +Object { + property bool onreadystatechange: false + property bool readyState: false + property bool status: false + property bool statusText: false + property bool responseText: false + property bool responseXML: false + + property bool open: false + property bool setRequestHeader: false + property bool send: false + property bool abort: false + property bool getResponseHeader: false + property bool getAllResponseHeaders: false + + Component.onCompleted: { + var o = 10; + + try { + XMLHttpRequest.prototype.onreadystatechange + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + onreadystatechange = true; + } + try { + XMLHttpRequest.prototype.readyState + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + readyState = true; + } + try { + XMLHttpRequest.prototype.status + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + status = true; + } + try { + XMLHttpRequest.prototype.statusText + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + statusText = true; + } + try { + XMLHttpRequest.prototype.responseText + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + responseText = true; + } + try { + XMLHttpRequest.prototype.responseXML + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + responseXML = true; + } + + try { + XMLHttpRequest.prototype.open.call(o); + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + open = true; + } + + try { + XMLHttpRequest.prototype.setRequestHeader.call(o); + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + setRequestHeader = true; + } + + try { + XMLHttpRequest.prototype.send.call(o); + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + send = true; + } + + try { + XMLHttpRequest.prototype.abort.call(o); + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + abort = true; + } + + try { + XMLHttpRequest.prototype.getResponseHeader.call(o); + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + getResponseHeader = true; + } + + try { + XMLHttpRequest.prototype.getAllResponseHeaders.call(o); + } catch (e) { + if (!(e instanceof ReferenceError)) + return; + + if (e.message != "Not an XMLHttpRequest object") + return; + + getAllResponseHeaders = true; + } + } +} diff --git a/tests/auto/declarative/xmlhttprequest/data/open_user.qml b/tests/auto/declarative/xmlhttprequest/data/open_user.qml new file mode 100644 index 0000000..cc90433 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/open_user.qml @@ -0,0 +1,53 @@ +import Qt 4.6 + +Object { + property string url + + property bool readyState: false + property bool openedState: false + + property bool status: false + property bool statusText: false + property bool responseText: false + property bool responseXML: false + + property bool dataOK: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + if (x.readyState == XMLHttpRequest.UNSENT) + readyState = true; + + x.open("GET", url, true, "username", "password"); + + if (x.readyState == XMLHttpRequest.OPENED) + openedState = true; + + try { + var a = x.status; + } catch (error) { + if (error.code == DOMException.INVALID_STATE_ERR) + status = true; + } + try { + var a = x.statusText; + } catch (error) { + if (error.code == DOMException.INVALID_STATE_ERR) + statusText = true; + } + responseText = (x.responseText == ""); + responseXML = (x.responseXML == null); + + // Test to the end + x.onreadystatechange = function() { + if (x.readyState == XMLHttpRequest.DONE) { + dataOK = (x.responseText == "QML Rocks!\n"); + } + } + + + x.send() + } +} + diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.4.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.4.qml index 375f2fa..4705007 100644 --- a/tests/auto/declarative/xmlhttprequest/data/send_data.4.qml +++ b/tests/auto/declarative/xmlhttprequest/data/send_data.4.qml @@ -21,4 +21,3 @@ Object { } } - diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.7.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.7.qml new file mode 100644 index 0000000..3a2ba56 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/send_data.7.qml @@ -0,0 +1,23 @@ +import Qt 4.6 + +Object { + property string url + + property bool dataOK: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + x.open("POST", url); + x.setRequestHeader("Content-Type", "text/plain"); + + // Test to the end + x.onreadystatechange = function() { + if (x.readyState == XMLHttpRequest.DONE) { + dataOK = (x.responseText == "QML Rocks!\n"); + } + } + + x.send("My Sent Data"); + } +} + diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_args.qml b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_args.qml new file mode 100644 index 0000000..6824af2 --- /dev/null +++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_args.qml @@ -0,0 +1,18 @@ +import Qt 4.6 + +Object { + property bool exceptionThrown: false + + Component.onCompleted: { + var x = new XMLHttpRequest; + + x.open("GET", "testdocument.html"); + + try { + x.setRequestHeader("Test-header"); + } catch (e) { + if (e.code == DOMException.SYNTAX_ERR) + exceptionThrown = true; + } + } +} diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml index cf5ebcc..8029bc4 100644 --- a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml +++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml @@ -22,6 +22,8 @@ Object { x.open("GET", url); + x.setRequestHeader(header, "Value"); + if (x.readyState == XMLHttpRequest.OPENED) openedState = true; diff --git a/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp index 100a11b..e74d1c5 100644 --- a/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp +++ b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp @@ -71,6 +71,7 @@ private slots: void setRequestHeader_illegalName_data(); void setRequestHeader_illegalName(); void setRequestHeader_sent(); + void setRequestHeader_args(); void send_unsent(); void send_alreadySent(); void send_ignoreData(); @@ -79,7 +80,13 @@ private slots: void abort_unsent(); void abort_opened(); void getResponseHeader(); + void getResponseHeader_unsent(); + void getResponseHeader_sent(); + void getResponseHeader_args(); void getAllResponseHeaders(); + void getAllResponseHeaders_unsent(); + void getAllResponseHeaders_sent(); + void getAllResponseHeaders_args(); void status(); void statusText(); void responseText(); @@ -283,6 +290,34 @@ void tst_xmlhttprequest::open() delete object; } + + // User/pass + { + TestHTTPServer server(SERVER_PORT); + QVERIFY(server.isValid()); + QVERIFY(server.wait(TEST_FILE("open_network.expect"), + TEST_FILE("open_network.reply"), + TEST_FILE("testdocument.html"))); + + QmlComponent component(&engine, TEST_FILE("open_user.qml")); + QObject *object = component.beginCreate(engine.rootContext()); + QVERIFY(object != 0); + object->setProperty("url", "http://127.0.0.1:14445/testdocument.html"); + component.completeCreate(); + + QCOMPARE(object->property("readyState").toBool(), true); + QCOMPARE(object->property("openedState").toBool(), true); + QCOMPARE(object->property("status").toBool(), true); + QCOMPARE(object->property("statusText").toBool(), true); + QCOMPARE(object->property("responseText").toBool(), true); + QCOMPARE(object->property("responseXML").toBool(), true); + + TRY_WAIT(object->property("dataOK").toBool() == true); + + // ### Check that the username/password were sent to the server + + delete object; + } } // Test that calling XMLHttpRequest.open() with an invalid method raises an exception @@ -445,6 +480,18 @@ void tst_xmlhttprequest::setRequestHeader_sent() delete object; } +// Invalid arg count throws exception +void tst_xmlhttprequest::setRequestHeader_args() +{ + QmlComponent component(&engine, TEST_FILE("setRequestHeader_args.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("exceptionThrown").toBool(), true); + + delete object; +} + // Test that calling send() in UNSENT state throws an exception void tst_xmlhttprequest::send_unsent() { @@ -628,6 +675,25 @@ void tst_xmlhttprequest::send_withdata() delete object; } + + // Correct content-type - no charset + { + TestHTTPServer server(SERVER_PORT); + QVERIFY(server.isValid()); + QVERIFY(server.wait(TEST_FILE("send_data.1.expect"), + TEST_FILE("send_data.reply"), + TEST_FILE("testdocument.html"))); + + QmlComponent component(&engine, TEST_FILE("send_data.7.qml")); + QObject *object = component.beginCreate(engine.rootContext()); + QVERIFY(object != 0); + object->setProperty("url", "http://127.0.0.1:14445/testdocument.html"); + component.completeCreate(); + + TRY_WAIT(object->property("dataOK").toBool() == true); + + delete object; + } } // Test abort() has no effect in unsent state @@ -736,6 +802,42 @@ void tst_xmlhttprequest::getResponseHeader() delete object; } +// Test getResponseHeader throws an exception in an invalid state +void tst_xmlhttprequest::getResponseHeader_unsent() +{ + QmlComponent component(&engine, TEST_FILE("getResponseHeader_unsent.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("test").toBool(), true); + + delete object; +} + +// Test getResponseHeader throws an exception in an invalid state +void tst_xmlhttprequest::getResponseHeader_sent() +{ + QmlComponent component(&engine, TEST_FILE("getResponseHeader_sent.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("test").toBool(), true); + + delete object; +} + +// Invalid arg count throws exception +void tst_xmlhttprequest::getResponseHeader_args() +{ + QmlComponent component(&engine, TEST_FILE("getResponseHeader_args.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + TRY_WAIT(object->property("exceptionThrown").toBool() == true); + + delete object; +} + void tst_xmlhttprequest::getAllResponseHeaders() { QmlEngine engine; // Avoid cookie contamination @@ -768,6 +870,42 @@ void tst_xmlhttprequest::getAllResponseHeaders() delete object; } +// Test getAllResponseHeaders throws an exception in an invalid state +void tst_xmlhttprequest::getAllResponseHeaders_unsent() +{ + QmlComponent component(&engine, TEST_FILE("getAllResponseHeaders_unsent.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("test").toBool(), true); + + delete object; +} + +// Test getAllResponseHeaders throws an exception in an invalid state +void tst_xmlhttprequest::getAllResponseHeaders_sent() +{ + QmlComponent component(&engine, TEST_FILE("getAllResponseHeaders_sent.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("test").toBool(), true); + + delete object; +} + +// Invalid arg count throws exception +void tst_xmlhttprequest::getAllResponseHeaders_args() +{ + QmlComponent component(&engine, TEST_FILE("getAllResponseHeaders_args.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + TRY_WAIT(object->property("exceptionThrown").toBool() == true); + + delete object; +} + void tst_xmlhttprequest::status() { { @@ -966,8 +1104,29 @@ void tst_xmlhttprequest::responseText() } } +// Test that calling hte XMLHttpRequest methods on a non-XMLHttpRequest object +// throws an exception void tst_xmlhttprequest::invalidMethodUsage() { + QmlComponent component(&engine, TEST_FILE("invalidMethodUsage.qml")); + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("onreadystatechange").toBool(), true); + QCOMPARE(object->property("readyState").toBool(), true); + QCOMPARE(object->property("status").toBool(), true); + QCOMPARE(object->property("statusText").toBool(), true); + QCOMPARE(object->property("responseText").toBool(), true); + QCOMPARE(object->property("responseXML").toBool(), true); + + QCOMPARE(object->property("open").toBool(), true); + QCOMPARE(object->property("setRequestHeader").toBool(), true); + QCOMPARE(object->property("send").toBool(), true); + QCOMPARE(object->property("abort").toBool(), true); + QCOMPARE(object->property("getResponseHeader").toBool(), true); + QCOMPARE(object->property("getAllResponseHeaders").toBool(), true); + + delete object; } void tst_xmlhttprequest::responseXML_invalid() -- cgit v0.12 From cbb41abbf76b7fc1b1821a0246076aa88cc4327f Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Fri, 13 Nov 2009 17:07:58 +1000 Subject: Don't enable gcov flags --- src/declarative/declarative.pro | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index 62ae289..da8434f 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -9,8 +9,8 @@ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2 unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtXml -QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors -LIBS += -lgcov +# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors +# LIBS += -lgcov INCLUDEPATH += ../../include/QtDeclarative -- cgit v0.12 From b315f5ac9ae996f8e1caab314236cea7baa25ae0 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Fri, 13 Nov 2009 18:01:23 +1000 Subject: Test MouseRegion.enabled --- .../visual/qmlmouseregion/data/mouseregion.1.png | Bin 471 -> 474 bytes .../visual/qmlmouseregion/data/mouseregion.10.png | Bin 477 -> 479 bytes .../visual/qmlmouseregion/data/mouseregion.12.png | Bin 479 -> 479 bytes .../visual/qmlmouseregion/data/mouseregion.13.png | Bin 481 -> 479 bytes .../visual/qmlmouseregion/data/mouseregion.14.png | Bin 479 -> 479 bytes .../visual/qmlmouseregion/data/mouseregion.2.png | Bin 471 -> 474 bytes .../visual/qmlmouseregion/data/mouseregion.3.png | Bin 471 -> 474 bytes .../visual/qmlmouseregion/data/mouseregion.4.png | Bin 476 -> 481 bytes .../visual/qmlmouseregion/data/mouseregion.5.png | Bin 476 -> 481 bytes .../visual/qmlmouseregion/data/mouseregion.6.png | Bin 476 -> 481 bytes .../visual/qmlmouseregion/data/mouseregion.7.png | Bin 474 -> 481 bytes .../visual/qmlmouseregion/data/mouseregion.8.png | Bin 474 -> 479 bytes .../visual/qmlmouseregion/data/mouseregion.9.png | Bin 474 -> 479 bytes .../visual/qmlmouseregion/data/mouseregion.qml | 5364 ++++++++------------ .../visual/qmlmouseregion/mouseregion.qml | 17 + 15 files changed, 2029 insertions(+), 3352 deletions(-) diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.1.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.1.png index c249c21..a96bf1b 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.1.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.1.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.10.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.10.png index ca98574..7420ca7 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.10.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.10.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.12.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.12.png index e797cc9..7420ca7 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.12.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.12.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.13.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.13.png index 96392e3..7420ca7 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.13.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.13.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.14.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.14.png index e797cc9..7420ca7 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.14.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.14.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.2.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.2.png index c249c21..a96bf1b 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.2.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.2.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.3.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.3.png index c249c21..a96bf1b 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.3.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.3.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.4.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.4.png index 0801e57..1fe365a 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.4.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.4.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.5.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.5.png index 0801e57..1fe365a 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.5.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.5.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.6.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.6.png index 0801e57..1fe365a 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.6.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.6.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.7.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.7.png index 50ae966..1fe365a 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.7.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.7.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.8.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.8.png index 50ae966..7420ca7 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.8.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.8.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.9.png b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.9.png index 50ae966..7420ca7 100644 Binary files a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.9.png and b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.9.png differ diff --git a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.qml b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.qml index 9b62da2..cc374fd 100644 --- a/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.qml +++ b/tests/auto/declarative/visual/qmlmouseregion/data/mouseregion.qml @@ -408,35 +408,43 @@ VisualTest { msec: 1616 hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" } + Frame { + msec: 1632 + hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + } + Frame { + msec: 1648 + hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + } + Frame { + msec: 1664 + hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + } Mouse { type: 5 button: 0 buttons: 0 - x: 52; y: 1 + x: 2; y: 29 modifiers: 0 sendToViewport: true } - Frame { - msec: 1632 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } Mouse { type: 5 button: 0 buttons: 0 - x: 50; y: 3 + x: 7; y: 32 modifiers: 0 sendToViewport: true } Frame { - msec: 1648 + msec: 1680 hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" } Mouse { type: 5 button: 0 buttons: 0 - x: 47; y: 5 + x: 19; y: 40 modifiers: 0 sendToViewport: true } @@ -444,39 +452,51 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 46; y: 7 + x: 33; y: 48 modifiers: 0 sendToViewport: true } + Frame { + msec: 1696 + hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + } Mouse { type: 5 button: 0 buttons: 0 - x: 44; y: 9 + x: 49; y: 54 modifiers: 0 sendToViewport: true } Frame { - msec: 1664 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 1712 + hash: "337f0f4af627bbdf8807135ce39d5070" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 67; y: 56 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 0 - x: 43; y: 11 + x: 74; y: 56 modifiers: 0 sendToViewport: true } Frame { - msec: 1680 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 1728 + hash: "337f0f4af627bbdf8807135ce39d5070" } Mouse { type: 5 button: 0 buttons: 0 - x: 41; y: 13 + x: 78; y: 57 modifiers: 0 sendToViewport: true } @@ -484,369 +504,501 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 40; y: 14 + x: 81; y: 57 modifiers: 0 sendToViewport: true } Frame { - msec: 1696 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 1744 + hash: "337f0f4af627bbdf8807135ce39d5070" } Mouse { type: 5 button: 0 buttons: 0 - x: 39; y: 15 + x: 82; y: 56 modifiers: 0 sendToViewport: true } - Frame { - msec: 1712 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } Mouse { type: 5 button: 0 buttons: 0 - x: 38; y: 16 + x: 83; y: 55 modifiers: 0 sendToViewport: true } Frame { - msec: 1728 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 1744 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { msec: 1760 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 54 + modifiers: 0 + sendToViewport: true } Frame { msec: 1776 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 53 + modifiers: 0 + sendToViewport: true } Frame { msec: 1792 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" } Frame { msec: 1808 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" } Frame { msec: 1824 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 38; y: 16 - modifiers: 0 - sendToViewport: true + hash: "337f0f4af627bbdf8807135ce39d5070" } Frame { msec: 1840 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" } Frame { msec: 1856 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" } Frame { msec: 1872 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 83; y: 52 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 82; y: 51 + modifiers: 0 + sendToViewport: true } Frame { msec: 1888 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "337f0f4af627bbdf8807135ce39d5070" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 80; y: 50 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 78; y: 48 + modifiers: 0 + sendToViewport: true } Frame { msec: 1904 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 75; y: 46 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 73; y: 45 + modifiers: 0 + sendToViewport: true } Frame { msec: 1920 image: "mouseregion.1.png" } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 71; y: 43 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 68; y: 41 + modifiers: 0 + sendToViewport: true + } Frame { msec: 1936 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 66; y: 40 + modifiers: 0 + sendToViewport: true } Frame { msec: 1952 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 64; y: 39 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 63; y: 37 + modifiers: 0 + sendToViewport: true } Frame { msec: 1968 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { - type: 3 - button: 1 + type: 5 + button: 0 + buttons: 0 + x: 61; y: 36 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 buttons: 0 - x: 38; y: 16 + x: 60; y: 36 modifiers: 0 sendToViewport: true } Frame { msec: 1984 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 58; y: 34 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 57; y: 33 + modifiers: 0 + sendToViewport: true } Frame { msec: 2000 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 56; y: 32 + modifiers: 0 + sendToViewport: true } Frame { msec: 2016 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 55; y: 30 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 54; y: 29 + modifiers: 0 + sendToViewport: true } Frame { msec: 2032 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2048 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2064 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2080 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2096 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2112 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2128 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 54; y: 29 + modifiers: 0 + sendToViewport: true } Frame { msec: 2144 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2160 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2176 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2192 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2208 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2224 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2240 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 54; y: 29 + modifiers: 0 + sendToViewport: true } Frame { msec: 2256 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2272 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2288 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2304 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2320 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2336 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 2 - button: 2 - buttons: 2 - x: 38; y: 16 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2352 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2368 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2384 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2400 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2416 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2432 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2448 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2464 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2480 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2496 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 3 - button: 2 - buttons: 0 - x: 38; y: 16 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2512 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2528 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2544 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2560 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2576 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2592 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2608 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2624 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2640 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 2 + button: 2 + buttons: 2 + x: 54; y: 29 + modifiers: 0 + sendToViewport: true } Frame { msec: 2656 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2672 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2688 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2704 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 38; y: 16 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2720 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2736 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2752 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 3 + button: 2 + buttons: 0 + x: 54; y: 29 + modifiers: 0 + sendToViewport: true } Frame { msec: 2768 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2784 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2800 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2816 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2832 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 38; y: 16 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2848 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2864 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 2880 @@ -854,49 +1006,13 @@ VisualTest { } Frame { msec: 2896 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 2912 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 2928 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 2944 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 2960 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 2976 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 2992 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 3008 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 3024 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 3040 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 41; y: 15 + x: 55; y: 29 modifiers: 0 sendToViewport: true } @@ -904,19 +1020,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 42; y: 15 + x: 58; y: 29 modifiers: 0 sendToViewport: true } Frame { - msec: 3056 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 2912 + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 44; y: 14 + x: 62; y: 29 modifiers: 0 sendToViewport: true } @@ -924,31 +1040,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 46; y: 14 + x: 67; y: 29 modifiers: 0 sendToViewport: true } Frame { - msec: 3072 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 2928 + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 49; y: 13 + x: 75; y: 30 modifiers: 0 sendToViewport: true } Frame { - msec: 3088 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 2944 + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 52; y: 13 + x: 91; y: 34 modifiers: 0 sendToViewport: true } @@ -956,19 +1072,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 55; y: 13 + x: 99; y: 34 modifiers: 0 sendToViewport: true } Frame { - msec: 3104 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 2960 + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 59; y: 12 + x: 107; y: 34 modifiers: 0 sendToViewport: true } @@ -976,19 +1092,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 65; y: 11 + x: 113; y: 34 modifiers: 0 sendToViewport: true } Frame { - msec: 3120 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 2976 + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 70; y: 11 + x: 119; y: 34 modifiers: 0 sendToViewport: true } @@ -996,19 +1112,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 76; y: 11 + x: 124; y: 33 modifiers: 0 sendToViewport: true } Frame { - msec: 3136 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 2992 + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 81; y: 11 + x: 128; y: 33 modifiers: 0 sendToViewport: true } @@ -1016,365 +1132,257 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 86; y: 11 + x: 131; y: 32 modifiers: 0 sendToViewport: true } Frame { - msec: 3152 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 3008 + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { type: 5 button: 0 buttons: 0 - x: 91; y: 11 + x: 132; y: 32 modifiers: 0 sendToViewport: true } - Frame { - msec: 3168 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } Mouse { type: 5 button: 0 buttons: 0 - x: 95; y: 11 + x: 132; y: 31 modifiers: 0 sendToViewport: true } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 99; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3024 + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { - msec: 3184 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 3040 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 103; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3056 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 106; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3072 + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { - msec: 3200 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 3088 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 110; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3104 + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { - msec: 3216 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 3120 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 112; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3136 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 116; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3152 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 119; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3168 + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { - msec: 3232 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 3184 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 121; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3200 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 122; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3216 + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { - msec: 3248 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + msec: 3232 + hash: "73f1639b9e2164c7b974042934c0d151" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 123; y: 12 - modifiers: 0 - sendToViewport: true + Frame { + msec: 3248 + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3264 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3280 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3296 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3312 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 124; y: 12 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3328 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 125; y: 12 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 128; y: 13 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3344 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 130; y: 13 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3360 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 133; y: 14 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 136; y: 14 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 138; y: 15 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3376 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 140; y: 15 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3392 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 141; y: 15 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3408 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3424 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3440 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3456 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3472 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3488 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3504 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3520 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3536 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3552 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 133; y: 31 + modifiers: 0 + sendToViewport: true } Frame { msec: 3568 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3584 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 133; y: 31 + modifiers: 0 + sendToViewport: true } Frame { msec: 3600 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3616 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3632 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3648 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3664 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3680 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3696 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Frame { - msec: 3712 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Mouse { - type: 2 + type: 3 button: 1 - buttons: 1 - x: 141; y: 15 + buttons: 0 + x: 133; y: 31 modifiers: 0 sendToViewport: true } Frame { + msec: 3712 + hash: "73f1639b9e2164c7b974042934c0d151" + } + Frame { msec: 3728 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3744 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3760 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3776 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3792 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3808 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 141; y: 15 - modifiers: 0 - sendToViewport: true + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3824 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3840 @@ -1382,333 +1390,249 @@ VisualTest { } Frame { msec: 3856 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3872 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3888 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3904 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3920 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3936 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3952 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3968 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 3984 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4000 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4016 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4032 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4048 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4064 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4080 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4096 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4112 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4128 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4144 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4160 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4176 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4192 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4208 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4224 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4240 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4256 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4272 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4288 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4304 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4320 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 2 + button: 2 + buttons: 2 + x: 133; y: 31 + modifiers: 0 + sendToViewport: true } Frame { msec: 4336 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4352 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4368 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4384 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4400 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4416 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" } Frame { msec: 4432 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "73f1639b9e2164c7b974042934c0d151" + } + Mouse { + type: 3 + button: 2 + buttons: 0 + x: 133; y: 31 + modifiers: 0 + sendToViewport: true } Frame { msec: 4448 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4464 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4480 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4496 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 2 - button: 2 - buttons: 2 - x: 141; y: 15 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4512 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4528 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4544 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4560 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4576 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4592 - hash: "1121bb51fc2d4c5c7ef3ae2c44794b49" - } - Mouse { - type: 3 - button: 2 - buttons: 0 - x: 141; y: 15 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4608 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4624 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4640 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4656 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4672 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4688 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4704 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4720 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 4736 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4752 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4768 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4784 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4800 - image: "mouseregion.4.png" - } - Frame { - msec: 4816 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4832 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4848 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4864 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4880 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4896 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4912 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4928 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4944 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4960 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4976 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 4992 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 5008 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 5024 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 142; y: 15 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 5040 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 145; y: 15 + x: 133; y: 32 modifiers: 0 sendToViewport: true } @@ -1716,19 +1640,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 146; y: 15 + x: 136; y: 32 modifiers: 0 sendToViewport: true } Frame { - msec: 5056 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4752 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 148; y: 15 + x: 142; y: 32 modifiers: 0 sendToViewport: true } @@ -1736,19 +1660,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 150; y: 15 + x: 148; y: 32 modifiers: 0 sendToViewport: true } Frame { - msec: 5072 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4768 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 153; y: 15 + x: 155; y: 32 modifiers: 0 sendToViewport: true } @@ -1756,39 +1680,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 157; y: 15 + x: 161; y: 32 modifiers: 0 sendToViewport: true } Frame { - msec: 5088 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 160; y: 16 - modifiers: 0 - sendToViewport: true + msec: 4784 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 162; y: 16 + x: 166; y: 31 modifiers: 0 sendToViewport: true } Frame { - msec: 5104 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4800 + image: "mouseregion.4.png" } Mouse { type: 5 button: 0 buttons: 0 - x: 165; y: 16 + x: 168; y: 31 modifiers: 0 sendToViewport: true } @@ -1796,71 +1712,75 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 167; y: 16 + x: 170; y: 30 modifiers: 0 sendToViewport: true } Frame { - msec: 5120 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4816 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 170; y: 16 + x: 171; y: 29 modifiers: 0 sendToViewport: true } Frame { - msec: 5136 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4832 + hash: "12edb0902e4d480c9052b00edc1a0a42" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 172; y: 16 - modifiers: 0 - sendToViewport: true + Frame { + msec: 4848 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 4864 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 4880 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 174; y: 16 + x: 172; y: 28 modifiers: 0 sendToViewport: true } - Frame { - msec: 5152 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } Mouse { type: 5 button: 0 buttons: 0 - x: 177; y: 16 + x: 175; y: 26 modifiers: 0 sendToViewport: true } + Frame { + msec: 4896 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } Mouse { type: 5 button: 0 buttons: 0 - x: 179; y: 16 + x: 178; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 5168 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4912 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 183; y: 16 + x: 182; y: 24 modifiers: 0 sendToViewport: true } @@ -1868,19 +1788,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 185; y: 16 + x: 187; y: 22 modifiers: 0 sendToViewport: true } Frame { - msec: 5184 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4928 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 188; y: 16 + x: 191; y: 22 modifiers: 0 sendToViewport: true } @@ -1888,19 +1808,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 190; y: 16 + x: 195; y: 21 modifiers: 0 sendToViewport: true } Frame { - msec: 5200 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4944 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 192; y: 16 + x: 200; y: 21 modifiers: 0 sendToViewport: true } @@ -1908,71 +1828,71 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 194; y: 16 + x: 206; y: 21 modifiers: 0 sendToViewport: true } Frame { - msec: 5216 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 4960 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 195; y: 15 + x: 211; y: 21 modifiers: 0 sendToViewport: true } - Frame { - msec: 5232 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } Mouse { type: 5 button: 0 buttons: 0 - x: 196; y: 15 + x: 215; y: 21 modifiers: 0 sendToViewport: true } + Frame { + msec: 4976 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } Mouse { type: 5 button: 0 buttons: 0 - x: 197; y: 15 + x: 218; y: 21 modifiers: 0 sendToViewport: true } - Frame { - msec: 5248 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } Mouse { type: 5 button: 0 buttons: 0 - x: 198; y: 15 + x: 221; y: 20 modifiers: 0 sendToViewport: true } + Frame { + msec: 4992 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } Mouse { type: 5 button: 0 buttons: 0 - x: 199; y: 15 + x: 224; y: 20 modifiers: 0 sendToViewport: true } Frame { - msec: 5264 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5008 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 201; y: 15 + x: 225; y: 20 modifiers: 0 sendToViewport: true } @@ -1980,51 +1900,59 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 203; y: 14 + x: 226; y: 20 modifiers: 0 sendToViewport: true } Frame { - msec: 5280 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5024 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 205; y: 14 + x: 227; y: 20 modifiers: 0 sendToViewport: true } + Frame { + msec: 5040 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5056 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5072 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } Mouse { type: 5 button: 0 buttons: 0 - x: 207; y: 14 + x: 228; y: 20 modifiers: 0 sendToViewport: true } - Frame { - msec: 5296 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } Mouse { type: 5 button: 0 buttons: 0 - x: 209; y: 14 + x: 229; y: 20 modifiers: 0 sendToViewport: true } Frame { - msec: 5312 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5088 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 212; y: 14 + x: 231; y: 20 modifiers: 0 sendToViewport: true } @@ -2032,59 +1960,75 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 215; y: 14 + x: 232; y: 20 modifiers: 0 sendToViewport: true } + Frame { + msec: 5104 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } Mouse { type: 5 button: 0 buttons: 0 - x: 219; y: 14 + x: 233; y: 20 modifiers: 0 sendToViewport: true } Frame { - msec: 5328 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5120 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5136 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5152 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5168 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 222; y: 14 + x: 233; y: 21 modifiers: 0 sendToViewport: true } - Frame { - msec: 5344 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } Mouse { type: 5 button: 0 buttons: 0 - x: 225; y: 14 + x: 234; y: 22 modifiers: 0 sendToViewport: true } + Frame { + msec: 5184 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } Mouse { type: 5 button: 0 buttons: 0 - x: 228; y: 14 + x: 237; y: 23 modifiers: 0 sendToViewport: true } Frame { - msec: 5360 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5200 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 231; y: 14 + x: 239; y: 24 modifiers: 0 sendToViewport: true } @@ -2092,19 +2036,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 232; y: 14 + x: 242; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 5376 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5216 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 234; y: 15 + x: 244; y: 25 modifiers: 0 sendToViewport: true } @@ -2112,149 +2056,149 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 235; y: 15 + x: 245; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 5392 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5232 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 5 button: 0 buttons: 0 - x: 236; y: 15 + x: 247; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 5408 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + msec: 5248 + hash: "12edb0902e4d480c9052b00edc1a0a42" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 237; y: 15 - modifiers: 0 - sendToViewport: true + Frame { + msec: 5264 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5280 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5296 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5312 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5328 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5344 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5360 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5376 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5392 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5408 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5424 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5440 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5456 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5472 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5488 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5504 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 238; y: 15 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5520 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 239; y: 15 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 239; y: 16 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5536 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 240; y: 16 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5552 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5568 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5584 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5600 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5616 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5632 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5648 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5664 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5680 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5696 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5712 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5728 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5744 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5760 @@ -2262,263 +2206,271 @@ VisualTest { } Frame { msec: 5776 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5792 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5808 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5824 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5840 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 2 button: 1 buttons: 1 - x: 240; y: 16 + x: 247; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 5840 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { msec: 5856 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5872 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5888 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5904 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5920 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 5936 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Mouse { type: 3 button: 1 buttons: 0 - x: 240; y: 16 + x: 247; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 5920 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { - msec: 5936 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Frame { msec: 5952 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5968 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 5984 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6000 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6016 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6032 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6048 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6064 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6080 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6096 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6112 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6128 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6144 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6160 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6176 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6192 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6208 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6224 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6240 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6256 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6272 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6288 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6304 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6320 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6336 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6352 - hash: "601dffcd1937164bd33eec3bcc09c5f6" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 240; y: 16 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6368 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6384 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6400 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6416 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6432 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6448 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6464 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6480 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6496 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6512 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6528 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6544 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6560 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6576 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 247; y: 25 + modifiers: 0 + sendToViewport: true } Frame { msec: 6592 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6608 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6624 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6640 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 247; y: 25 + modifiers: 0 + sendToViewport: true } Frame { msec: 6656 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6672 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6688 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6704 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6720 @@ -2526,247 +2478,263 @@ VisualTest { } Frame { msec: 6736 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 247; y: 25 + modifiers: 0 + sendToViewport: true } Frame { msec: 6752 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6768 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6784 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6800 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6816 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6832 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 247; y: 25 + modifiers: 0 + sendToViewport: true } Frame { msec: 6848 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6864 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6880 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6896 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6912 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6928 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6944 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6960 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6976 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 6992 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7008 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7024 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7040 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7056 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7072 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7088 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7104 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7120 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7136 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7152 - hash: "601dffcd1937164bd33eec3bcc09c5f6" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7168 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7184 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7200 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 247; y: 25 + modifiers: 0 + sendToViewport: true } Frame { msec: 7216 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7232 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7248 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7264 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7280 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7296 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7312 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7328 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7344 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7360 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7376 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7392 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7408 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7424 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7440 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7456 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7472 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7488 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 240; y: 16 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7504 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7520 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7536 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7552 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7568 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7584 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7600 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7616 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7632 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7648 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7664 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7680 @@ -2774,117 +2742,241 @@ VisualTest { } Frame { msec: 7696 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7712 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7728 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7744 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7760 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7776 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7792 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7808 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7824 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 240; y: 17 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 242; y: 19 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7840 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 246; y: 19 - modifiers: 0 - sendToViewport: true + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { msec: 7856 - hash: "8f117fb26412886b9b6e37b152dd05b2" + hash: "12edb0902e4d480c9052b00edc1a0a42" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 250; y: 19 - modifiers: 0 - sendToViewport: true + Frame { + msec: 7872 + hash: "12edb0902e4d480c9052b00edc1a0a42" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 252; y: 19 - modifiers: 0 - sendToViewport: true + Frame { + msec: 7888 + hash: "12edb0902e4d480c9052b00edc1a0a42" } Frame { - msec: 7872 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 7904 + hash: "12edb0902e4d480c9052b00edc1a0a42" } - Mouse { - type: 5 - button: 0 + Frame { + msec: 7920 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 7936 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 7952 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 7968 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 7984 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 8000 + hash: "12edb0902e4d480c9052b00edc1a0a42" + } + Frame { + msec: 8016 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8032 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8048 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8064 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8080 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8096 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8112 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8128 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8144 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8160 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8176 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8192 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8208 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8224 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8240 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8256 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8272 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8288 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8304 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8320 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8336 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Mouse { + type: 3 + button: 1 buttons: 0 - x: 255; y: 19 + x: 247; y: 25 modifiers: 0 sendToViewport: true } + Frame { + msec: 8352 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8368 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8384 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8400 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8416 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8432 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8448 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8464 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8480 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8496 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8512 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 8528 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 257; y: 19 + x: 248; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 7888 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8544 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 259; y: 19 + x: 254; y: 26 modifiers: 0 sendToViewport: true } @@ -2892,19 +2984,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 261; y: 19 + x: 259; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 7904 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8560 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 263; y: 19 + x: 264; y: 26 modifiers: 0 sendToViewport: true } @@ -2912,19 +3004,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 265; y: 19 + x: 268; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 7920 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8576 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 268; y: 19 + x: 273; y: 26 modifiers: 0 sendToViewport: true } @@ -2932,71 +3024,71 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 270; y: 19 + x: 277; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 7936 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8592 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 272; y: 19 + x: 281; y: 24 modifiers: 0 sendToViewport: true } - Frame { - msec: 7952 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 275; y: 19 + x: 284; y: 24 modifiers: 0 sendToViewport: true } + Frame { + msec: 8608 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 277; y: 19 + x: 287; y: 24 modifiers: 0 sendToViewport: true } - Frame { - msec: 7968 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 280; y: 19 + x: 289; y: 24 modifiers: 0 sendToViewport: true } + Frame { + msec: 8624 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 282; y: 19 + x: 292; y: 24 modifiers: 0 sendToViewport: true } Frame { - msec: 7984 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8640 + image: "mouseregion.8.png" } Mouse { type: 5 button: 0 buttons: 0 - x: 284; y: 19 + x: 294; y: 24 modifiers: 0 sendToViewport: true } @@ -3004,19 +3096,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 286; y: 19 + x: 295; y: 24 modifiers: 0 sendToViewport: true } Frame { - msec: 8000 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8656 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 289; y: 19 + x: 297; y: 24 modifiers: 0 sendToViewport: true } @@ -3024,19 +3116,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 292; y: 19 + x: 299; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 8016 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8672 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 295; y: 19 + x: 301; y: 25 modifiers: 0 sendToViewport: true } @@ -3044,31 +3136,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 298; y: 19 + x: 304; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 8032 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8688 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 303; y: 19 + x: 307; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8048 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8704 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 307; y: 19 + x: 310; y: 26 modifiers: 0 sendToViewport: true } @@ -3076,39 +3168,39 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 311; y: 19 + x: 312; y: 26 modifiers: 0 sendToViewport: true } + Frame { + msec: 8720 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 314; y: 19 + x: 314; y: 26 modifiers: 0 sendToViewport: true } - Frame { - msec: 8064 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 317; y: 19 + x: 315; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8080 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8736 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 320; y: 19 + x: 317; y: 26 modifiers: 0 sendToViewport: true } @@ -3116,39 +3208,43 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 322; y: 19 + x: 318; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8096 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8752 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 324; y: 19 + x: 319; y: 26 modifiers: 0 sendToViewport: true } + Frame { + msec: 8768 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 326; y: 19 + x: 320; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8112 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8784 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 327; y: 19 + x: 322; y: 26 modifiers: 0 sendToViewport: true } @@ -3156,31 +3252,39 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 328; y: 20 + x: 323; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8128 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8800 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 325; y: 26 + modifiers: 0 + sendToViewport: true } Mouse { type: 5 button: 0 buttons: 0 - x: 330; y: 20 + x: 327; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8144 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8816 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 332; y: 20 + x: 330; y: 26 modifiers: 0 sendToViewport: true } @@ -3188,19 +3292,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 335; y: 20 + x: 333; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8160 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8832 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 337; y: 20 + x: 336; y: 26 modifiers: 0 sendToViewport: true } @@ -3208,331 +3312,263 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 338; y: 20 + x: 338; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8176 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8848 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 339; y: 20 + x: 339; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8192 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8208 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8864 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 8224 - hash: "8f117fb26412886b9b6e37b152dd05b2" + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 340; y: 26 + modifiers: 0 + sendToViewport: true } Frame { - msec: 8240 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8880 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8256 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8272 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8288 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8304 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8320 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8336 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8352 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8368 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8384 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8400 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8416 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8432 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 8896 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 2 button: 1 buttons: 1 - x: 339; y: 20 + x: 340; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8448 - hash: "28c4b317215bd47c7bb52be8bd36de2e" - } - Frame { - msec: 8464 - hash: "28c4b317215bd47c7bb52be8bd36de2e" + msec: 8912 + hash: "d1f2fc2133f3d6554e41982196662c2a" } Frame { - msec: 8480 - hash: "28c4b317215bd47c7bb52be8bd36de2e" + msec: 8928 + hash: "d1f2fc2133f3d6554e41982196662c2a" } Frame { - msec: 8496 - hash: "28c4b317215bd47c7bb52be8bd36de2e" + msec: 8944 + hash: "d1f2fc2133f3d6554e41982196662c2a" } Frame { - msec: 8512 - hash: "28c4b317215bd47c7bb52be8bd36de2e" + msec: 8960 + hash: "d1f2fc2133f3d6554e41982196662c2a" } Frame { - msec: 8528 - hash: "28c4b317215bd47c7bb52be8bd36de2e" + msec: 8976 + hash: "d1f2fc2133f3d6554e41982196662c2a" } Frame { - msec: 8544 - hash: "28c4b317215bd47c7bb52be8bd36de2e" + msec: 8992 + hash: "d1f2fc2133f3d6554e41982196662c2a" } Mouse { type: 3 button: 1 buttons: 0 - x: 339; y: 20 + x: 340; y: 26 modifiers: 0 sendToViewport: true } Frame { - msec: 8560 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8576 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8592 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8608 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8624 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Frame { - msec: 8640 - image: "mouseregion.8.png" - } - Frame { - msec: 8656 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9008 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8672 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9024 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8688 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9040 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8704 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9056 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8720 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9072 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8736 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9088 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8752 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9104 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8768 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9120 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8784 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9136 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8800 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9152 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8816 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9168 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8832 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9184 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8848 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9200 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8864 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9216 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8880 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9232 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8896 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9248 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8912 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9264 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8928 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9280 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8944 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9296 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8960 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9312 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8976 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9328 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 8992 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9344 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9008 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9360 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9024 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9376 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9040 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9392 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9056 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9408 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9072 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9424 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9088 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9440 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9104 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9456 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9120 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9472 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9136 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9488 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9152 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9504 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9168 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9520 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9184 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9536 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9200 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9552 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9216 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9568 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9232 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9584 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 9248 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9600 + image: "mouseregion.9.png" } Mouse { type: 5 button: 0 buttons: 0 - x: 343; y: 20 + x: 339; y: 26 modifiers: 0 sendToViewport: true } + Frame { + msec: 9616 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 341; y: 20 + x: 336; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 9264 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9632 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 338; y: 20 + x: 332; y: 25 modifiers: 0 sendToViewport: true } @@ -3540,19 +3576,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 332; y: 20 + x: 326; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 9280 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9648 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 326; y: 20 + x: 320; y: 25 modifiers: 0 sendToViewport: true } @@ -3560,19 +3596,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 319; y: 19 + x: 312; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 9296 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9664 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 311; y: 19 + x: 292; y: 25 modifiers: 0 sendToViewport: true } @@ -3580,31 +3616,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 304; y: 19 + x: 283; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 9312 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9680 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 297; y: 19 + x: 261; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 9328 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9696 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 292; y: 19 + x: 252; y: 25 modifiers: 0 sendToViewport: true } @@ -3612,19 +3648,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 286; y: 19 + x: 243; y: 25 modifiers: 0 sendToViewport: true } Frame { - msec: 9344 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9712 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 281; y: 19 + x: 225; y: 29 modifiers: 0 sendToViewport: true } @@ -3632,39 +3668,39 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 276; y: 19 + x: 207; y: 33 modifiers: 0 sendToViewport: true } Frame { - msec: 9360 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9728 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 272; y: 19 + x: 189; y: 35 modifiers: 0 sendToViewport: true } - Frame { - msec: 9376 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 267; y: 19 + x: 169; y: 39 modifiers: 0 sendToViewport: true } + Frame { + msec: 9744 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 264; y: 19 + x: 161; y: 40 modifiers: 0 sendToViewport: true } @@ -3672,31 +3708,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 260; y: 19 + x: 145; y: 44 modifiers: 0 sendToViewport: true } Frame { - msec: 9392 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9760 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 256; y: 19 + x: 138; y: 45 modifiers: 0 sendToViewport: true } Frame { - msec: 9408 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9776 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 253; y: 19 + x: 133; y: 48 modifiers: 0 sendToViewport: true } @@ -3704,39 +3740,39 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 251; y: 20 + x: 127; y: 50 modifiers: 0 sendToViewport: true } Frame { - msec: 9424 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9792 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 249; y: 20 + x: 122; y: 52 modifiers: 0 sendToViewport: true } - Frame { - msec: 9440 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 247; y: 21 + x: 118; y: 56 modifiers: 0 sendToViewport: true } + Frame { + msec: 9808 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 245; y: 21 + x: 114; y: 57 modifiers: 0 sendToViewport: true } @@ -3744,31 +3780,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 242; y: 21 + x: 110; y: 60 modifiers: 0 sendToViewport: true } Frame { - msec: 9456 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9824 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 240; y: 22 + x: 109; y: 61 modifiers: 0 sendToViewport: true } Frame { - msec: 9472 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9840 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 237; y: 22 + x: 107; y: 62 modifiers: 0 sendToViewport: true } @@ -3776,19 +3812,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 233; y: 23 + x: 106; y: 63 modifiers: 0 sendToViewport: true } Frame { - msec: 9488 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9856 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 230; y: 23 + x: 103; y: 63 modifiers: 0 sendToViewport: true } @@ -3796,19 +3832,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 226; y: 24 + x: 100; y: 64 modifiers: 0 sendToViewport: true } Frame { - msec: 9504 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9872 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 222; y: 24 + x: 96; y: 64 modifiers: 0 sendToViewport: true } @@ -3816,51 +3852,51 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 219; y: 24 + x: 92; y: 65 modifiers: 0 sendToViewport: true } Frame { - msec: 9520 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9888 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 215; y: 24 + x: 88; y: 65 modifiers: 0 sendToViewport: true } + Frame { + msec: 9904 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" + } Mouse { type: 5 button: 0 buttons: 0 - x: 212; y: 24 + x: 85; y: 66 modifiers: 0 sendToViewport: true } - Frame { - msec: 9536 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 208; y: 24 + x: 82; y: 67 modifiers: 0 sendToViewport: true } Frame { - msec: 9552 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9920 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 204; y: 24 + x: 79; y: 69 modifiers: 0 sendToViewport: true } @@ -3868,19 +3904,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 200; y: 23 + x: 77; y: 70 modifiers: 0 sendToViewport: true } Frame { - msec: 9568 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9936 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 197; y: 23 + x: 74; y: 71 modifiers: 0 sendToViewport: true } @@ -3888,19 +3924,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 194; y: 23 + x: 70; y: 72 modifiers: 0 sendToViewport: true } Frame { - msec: 9584 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9952 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 191; y: 23 + x: 67; y: 74 modifiers: 0 sendToViewport: true } @@ -3908,31 +3944,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 188; y: 23 + x: 64; y: 75 modifiers: 0 sendToViewport: true } Frame { - msec: 9600 - image: "mouseregion.9.png" + msec: 9968 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 184; y: 23 + x: 62; y: 76 modifiers: 0 sendToViewport: true } Frame { - msec: 9616 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 9984 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 181; y: 23 + x: 61; y: 76 modifiers: 0 sendToViewport: true } @@ -3940,71 +3976,39 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 177; y: 23 + x: 60; y: 77 modifiers: 0 sendToViewport: true } Frame { - msec: 9632 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 173; y: 23 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 170; y: 23 - modifiers: 0 - sendToViewport: true + msec: 10000 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Frame { - msec: 9648 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 168; y: 23 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 166; y: 23 - modifiers: 0 - sendToViewport: true + msec: 10016 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Frame { - msec: 9664 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10032 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 165; y: 23 + x: 59; y: 77 modifiers: 0 sendToViewport: true } Frame { - msec: 9680 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10048 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 163; y: 23 + x: 58; y: 77 modifiers: 0 sendToViewport: true } @@ -4012,123 +4016,71 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 161; y: 23 + x: 57; y: 77 modifiers: 0 sendToViewport: true } Frame { - msec: 9696 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10064 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 160; y: 23 + x: 56; y: 76 modifiers: 0 sendToViewport: true } Frame { - msec: 9712 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 158; y: 23 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 156; y: 23 - modifiers: 0 - sendToViewport: true + msec: 10080 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Frame { - msec: 9728 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 154; y: 23 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 152; y: 23 - modifiers: 0 - sendToViewport: true + msec: 10096 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Frame { - msec: 9744 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10112 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 149; y: 24 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10128 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 146; y: 24 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10144 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Frame { - msec: 9760 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10160 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 144; y: 26 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10176 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 142; y: 26 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10192 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Frame { - msec: 9776 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10208 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 140; y: 27 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10224 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Frame { - msec: 9792 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10240 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 138; y: 28 + x: 57; y: 76 modifiers: 0 sendToViewport: true } @@ -4136,31 +4088,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 136; y: 30 + x: 59; y: 75 modifiers: 0 sendToViewport: true } Frame { - msec: 9808 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10256 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 134; y: 31 + x: 62; y: 75 modifiers: 0 sendToViewport: true } Frame { - msec: 9824 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10272 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 133; y: 32 + x: 65; y: 74 modifiers: 0 sendToViewport: true } @@ -4168,39 +4120,39 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 132; y: 33 + x: 69; y: 74 modifiers: 0 sendToViewport: true } + Frame { + msec: 10288 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" + } Mouse { type: 5 button: 0 buttons: 0 - x: 131; y: 34 + x: 72; y: 73 modifiers: 0 sendToViewport: true } - Frame { - msec: 9840 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 130; y: 35 + x: 76; y: 73 modifiers: 0 sendToViewport: true } Frame { - msec: 9856 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10304 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 128; y: 36 + x: 80; y: 72 modifiers: 0 sendToViewport: true } @@ -4208,19 +4160,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 126; y: 37 + x: 84; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 9872 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10320 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 124; y: 37 + x: 87; y: 71 modifiers: 0 sendToViewport: true } @@ -4228,51 +4180,51 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 122; y: 38 + x: 90; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 9888 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10336 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" } Mouse { type: 5 button: 0 buttons: 0 - x: 119; y: 38 + x: 93; y: 71 modifiers: 0 sendToViewport: true } + Frame { + msec: 10352 + hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" + } Mouse { type: 5 button: 0 buttons: 0 - x: 117; y: 39 + x: 96; y: 71 modifiers: 0 sendToViewport: true } - Frame { - msec: 9904 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 114; y: 40 + x: 99; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 9920 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10368 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 112; y: 41 + x: 102; y: 71 modifiers: 0 sendToViewport: true } @@ -4280,19 +4232,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 109; y: 42 + x: 106; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 9936 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10384 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 107; y: 43 + x: 108; y: 71 modifiers: 0 sendToViewport: true } @@ -4300,19 +4252,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 104; y: 44 + x: 110; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 9952 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10400 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 102; y: 44 + x: 113; y: 71 modifiers: 0 sendToViewport: true } @@ -4320,19 +4272,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 99; y: 45 + x: 115; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 9968 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10416 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 97; y: 46 + x: 118; y: 71 modifiers: 0 sendToViewport: true } @@ -4340,31 +4292,31 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 95; y: 46 + x: 121; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 9984 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10432 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 93; y: 47 + x: 123; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 10000 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10448 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 92; y: 47 + x: 126; y: 71 modifiers: 0 sendToViewport: true } @@ -4372,71 +4324,67 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 91; y: 47 + x: 128; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 10016 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10464 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 90; y: 47 + x: 130; y: 71 modifiers: 0 sendToViewport: true } - Frame { - msec: 10032 - hash: "8f117fb26412886b9b6e37b152dd05b2" - } Mouse { type: 5 button: 0 buttons: 0 - x: 88; y: 48 + x: 132; y: 71 modifiers: 0 sendToViewport: true } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 87; y: 48 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10480 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 86; y: 48 + x: 133; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 10048 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10496 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 85; y: 49 + x: 134; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 10064 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10512 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 10528 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 84; y: 49 + x: 135; y: 71 modifiers: 0 sendToViewport: true } @@ -4444,19 +4392,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 82; y: 49 + x: 136; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 10080 - hash: "8f117fb26412886b9b6e37b152dd05b2" + msec: 10544 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 82; y: 50 + x: 137; y: 71 modifiers: 0 sendToViewport: true } @@ -4464,19 +4412,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 81; y: 50 + x: 138; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 10096 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" + msec: 10560 + image: "mouseregion.10.png" } Mouse { type: 5 button: 0 buttons: 0 - x: 79; y: 51 + x: 140; y: 71 modifiers: 0 sendToViewport: true } @@ -4484,570 +4432,70 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 77; y: 51 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 10112 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 76; y: 52 - modifiers: 0 - sendToViewport: true + msec: 10576 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 10128 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 74; y: 53 - modifiers: 0 - sendToViewport: true + msec: 10592 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 73; y: 54 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10144 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 72; y: 54 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 71; y: 55 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10160 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 70; y: 55 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 69; y: 56 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10176 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 68; y: 57 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10192 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 67; y: 58 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 66; y: 58 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10208 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 65; y: 59 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 64; y: 60 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10224 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 63; y: 60 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10240 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 62; y: 61 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 60; y: 62 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10256 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 59; y: 63 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10272 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 58; y: 64 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 57; y: 64 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 57; y: 65 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10288 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 56; y: 66 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10304 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 55; y: 66 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 54; y: 67 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10320 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10336 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 53; y: 68 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 52; y: 69 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10352 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10368 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10384 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10400 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10416 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10432 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10448 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10464 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10480 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10496 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10512 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10528 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10544 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Frame { - msec: 10560 - image: "mouseregion.10.png" - } - Frame { - msec: 10576 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 69 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 68 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10592 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 67 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10608 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 66 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 65 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10608 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 10624 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 64 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 62 - modifiers: 0 - sendToViewport: true + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 10640 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 60 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 59 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10656 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 57 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 55 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10672 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 54 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 10688 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 53 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 51 - modifiers: 0 - sendToViewport: true + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 10704 - hash: "6627c7a1a4da7e642f4b4b24ca5e8e7a" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 50 - modifiers: 0 - sendToViewport: true + msec: 10656 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 48 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10672 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 10720 + msec: 10688 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 46 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10704 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 44 - modifiers: 0 - sendToViewport: true + Frame { + msec: 10720 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 10736 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 43 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 42 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10752 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 40 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10768 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 39 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10784 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 38 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10800 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 37 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10816 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5056,46 +4504,14 @@ VisualTest { msec: 10832 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 36 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 35 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10848 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 34 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10864 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 33 - modifiers: 0 - sendToViewport: true - } Frame { msec: 10880 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5144,14 +4560,6 @@ VisualTest { msec: 11056 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 51; y: 32 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11072 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5176,255 +4584,71 @@ VisualTest { msec: 11152 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 52; y: 32 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 53; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11168 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 55; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11184 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 57; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 59; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11200 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 62; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 66; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11216 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 70; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 74; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11232 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 78; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11248 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 80; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 83; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 85; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11264 hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 - buttons: 0 - x: 87; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 88; y: 31 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 11280 - hash: "194ebac4ae7d95bf427f8161885a13e1" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 90; y: 31 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 11296 - hash: "194ebac4ae7d95bf427f8161885a13e1" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 92; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 94; y: 31 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 11312 - hash: "194ebac4ae7d95bf427f8161885a13e1" - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 97; y: 31 + type: 2 + button: 1 + buttons: 1 + x: 141; y: 71 modifiers: 0 sendToViewport: true } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 100; y: 31 - modifiers: 0 - sendToViewport: true + Frame { + msec: 11280 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 11328 + msec: 11296 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 104; y: 31 - modifiers: 0 - sendToViewport: true + Frame { + msec: 11312 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 108; y: 31 - modifiers: 0 - sendToViewport: true + Frame { + msec: 11328 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 11344 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 111; y: 31 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 115; y: 31 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11360 hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 + type: 3 + button: 1 buttons: 0 - x: 117; y: 32 + x: 141; y: 71 modifiers: 0 sendToViewport: true } @@ -5432,314 +4656,74 @@ VisualTest { msec: 11376 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 120; y: 33 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 122; y: 33 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11392 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 124; y: 34 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 125; y: 34 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11408 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 126; y: 34 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11424 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 128; y: 34 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 128; y: 35 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 129; y: 35 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11440 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 130; y: 36 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11456 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 132; y: 36 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 134; y: 37 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11472 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 135; y: 38 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11488 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 136; y: 39 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 138; y: 40 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 139; y: 41 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11504 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 141; y: 43 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11520 image: "mouseregion.11.png" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 142; y: 44 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 143; y: 46 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11536 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 144; y: 48 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 146; y: 49 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11552 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 147; y: 52 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 148; y: 54 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11568 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 149; y: 57 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 149; y: 59 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11584 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 150; y: 61 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11600 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 151; y: 62 - modifiers: 0 - sendToViewport: true - } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 151; y: 64 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11616 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 151; y: 65 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11632 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 151; y: 66 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11648 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 151; y: 67 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11664 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5748,14 +4732,6 @@ VisualTest { msec: 11680 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 151; y: 68 - modifiers: 0 - sendToViewport: true - } Frame { msec: 11696 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5764,6 +4740,14 @@ VisualTest { msec: 11712 hash: "194ebac4ae7d95bf427f8161885a13e1" } + Mouse { + type: 2 + button: 2 + buttons: 2 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true + } Frame { msec: 11728 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5792,6 +4776,14 @@ VisualTest { msec: 11824 hash: "194ebac4ae7d95bf427f8161885a13e1" } + Mouse { + type: 3 + button: 2 + buttons: 0 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true + } Frame { msec: 11840 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5840,14 +4832,6 @@ VisualTest { msec: 12016 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 151; y: 68 - modifiers: 0 - sendToViewport: true - } Frame { msec: 12032 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5856,6 +4840,14 @@ VisualTest { msec: 12048 hash: "194ebac4ae7d95bf427f8161885a13e1" } + Mouse { + type: 4 + button: 2 + buttons: 2 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true + } Frame { msec: 12064 hash: "194ebac4ae7d95bf427f8161885a13e1" @@ -5868,995 +4860,683 @@ VisualTest { msec: 12096 hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 151; y: 68 - modifiers: 0 - sendToViewport: true - } Frame { msec: 12112 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12128 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12144 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12160 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12176 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12192 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12208 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Mouse { + type: 3 + button: 2 + buttons: 0 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { msec: 12224 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12240 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12256 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12272 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12288 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { msec: 12304 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12320 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12336 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12352 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12368 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12384 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12400 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12416 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12432 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { msec: 12448 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12464 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12480 - image: "mouseregion.12.png" - } - Frame { - msec: 12496 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12512 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12528 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12544 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12560 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12576 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12592 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12608 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12624 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12640 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12656 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12672 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12688 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12704 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12720 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12736 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12752 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12768 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12784 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12800 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12816 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12832 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12848 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12864 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12880 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12896 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12912 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12928 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12944 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12960 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12976 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 12992 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13008 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13024 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13040 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13056 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13072 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13088 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13104 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13120 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13136 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13152 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13168 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13184 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13200 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13216 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13232 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 2 - button: 1 - buttons: 1 - x: 151; y: 68 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 13248 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13264 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13280 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 151; y: 68 + button: 2 + buttons: 3 + x: 141; y: 71 modifiers: 0 - sendToViewport: true - } - Frame { - msec: 13296 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + sendToViewport: true } Frame { - msec: 13312 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12464 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13328 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12480 + image: "mouseregion.12.png" } Frame { - msec: 13344 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12496 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13360 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12512 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13376 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12528 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 4 - button: 1 + type: 3 + button: 2 buttons: 1 - x: 151; y: 68 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 13392 - hash: "484e280fc550de3c4de0a5f664031e21" - } - Frame { - msec: 13408 - hash: "484e280fc550de3c4de0a5f664031e21" - } - Frame { - msec: 13424 - hash: "484e280fc550de3c4de0a5f664031e21" - } - Frame { - msec: 13440 - image: "mouseregion.13.png" - } - Frame { - msec: 13456 - hash: "484e280fc550de3c4de0a5f664031e21" + msec: 12544 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 3 button: 1 buttons: 0 - x: 151; y: 68 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 13472 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 13488 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12560 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13504 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12576 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13520 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12592 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13536 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12608 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13552 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12624 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13568 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12640 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13584 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12656 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13600 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12672 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 13616 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 13632 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12688 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13648 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12704 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13664 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12720 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13680 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12736 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13696 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12752 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 13712 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 13728 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12768 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13744 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12784 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13760 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12800 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13776 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12816 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13792 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12832 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 13808 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 13824 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12848 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13840 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12864 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13856 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12880 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13872 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12896 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 13888 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 13904 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12912 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13920 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12928 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13936 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12944 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13952 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12960 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 13968 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12976 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 13984 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 14000 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 12992 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14016 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13008 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14032 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13024 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14048 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13040 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14064 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13056 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 14080 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 14096 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13072 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14112 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13088 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 14128 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 14144 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13104 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14160 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13120 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14176 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13136 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14192 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13152 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14208 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13168 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14224 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13184 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 14240 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 141; y: 71 + modifiers: 0 + sendToViewport: true } Frame { - msec: 14256 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13200 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14272 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13216 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14288 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13232 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14304 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13248 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14320 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13264 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14336 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13280 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14352 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13296 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 - buttons: 0 - x: 152; y: 68 + type: 2 + button: 1 + buttons: 1 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 14368 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13312 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 13328 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 13344 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 155; y: 67 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13360 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } + Frame { + msec: 13376 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 + type: 3 + button: 1 buttons: 0 - x: 158; y: 66 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 14384 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13392 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 162; y: 64 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13408 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 166; y: 63 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13424 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14400 - image: "mouseregion.14.png" + msec: 13440 + image: "mouseregion.13.png" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 171; y: 61 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13456 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 177; y: 59 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13472 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14416 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13488 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 182; y: 58 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13504 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 186; y: 58 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13520 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14432 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13536 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 191; y: 57 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13552 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 197; y: 56 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13568 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14448 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13584 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 202; y: 55 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13600 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14464 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13616 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 206; y: 54 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13632 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 - buttons: 0 - x: 211; y: 53 + type: 2 + button: 2 + buttons: 2 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 14480 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13648 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 215; y: 52 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13664 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14496 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13680 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 218; y: 51 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13696 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 222; y: 50 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13712 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 + type: 3 + button: 2 buttons: 0 - x: 226; y: 48 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 14512 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13728 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 229; y: 47 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13744 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14528 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13760 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 233; y: 45 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13776 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 237; y: 44 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13792 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14544 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13808 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 - buttons: 0 - x: 242; y: 42 + type: 4 + button: 2 + buttons: 2 + x: 141; y: 71 modifiers: 0 sendToViewport: true } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 247; y: 40 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13824 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14560 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13840 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 252; y: 39 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13856 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14576 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13872 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 257; y: 37 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13888 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 261; y: 35 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13904 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { - type: 5 - button: 0 + type: 3 + button: 2 buttons: 0 - x: 265; y: 34 + x: 141; y: 71 modifiers: 0 sendToViewport: true } Frame { - msec: 14592 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13920 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 269; y: 32 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13936 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 272; y: 31 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13952 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14608 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 13968 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 275; y: 30 - modifiers: 0 - sendToViewport: true + Frame { + msec: 13984 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 279; y: 29 - modifiers: 0 - sendToViewport: true + Frame { + msec: 14000 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14624 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14016 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 281; y: 28 - modifiers: 0 - sendToViewport: true + Frame { + msec: 14032 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14640 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14048 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 285; y: 28 - modifiers: 0 - sendToViewport: true + Frame { + msec: 14064 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 287; y: 27 - modifiers: 0 - sendToViewport: true + Frame { + msec: 14080 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14656 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14096 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 291; y: 27 - modifiers: 0 - sendToViewport: true + Frame { + msec: 14112 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 294; y: 26 - modifiers: 0 - sendToViewport: true + Frame { + msec: 14128 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14672 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14144 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Mouse { - type: 5 - button: 0 - buttons: 0 - x: 299; y: 25 - modifiers: 0 - sendToViewport: true + Frame { + msec: 14160 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14688 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14176 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 303; y: 25 + x: 141; y: 70 modifiers: 0 sendToViewport: true } @@ -6864,19 +5544,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 306; y: 24 + x: 148; y: 68 modifiers: 0 sendToViewport: true } Frame { - msec: 14704 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14192 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 310; y: 23 + x: 152; y: 68 modifiers: 0 sendToViewport: true } @@ -6884,39 +5564,39 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 314; y: 21 + x: 158; y: 68 modifiers: 0 sendToViewport: true } Frame { - msec: 14720 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14208 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 318; y: 19 + x: 164; y: 68 modifiers: 0 sendToViewport: true } + Frame { + msec: 14224 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 321; y: 17 + x: 171; y: 66 modifiers: 0 sendToViewport: true } - Frame { - msec: 14736 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } Mouse { type: 5 button: 0 buttons: 0 - x: 323; y: 15 + x: 187; y: 62 modifiers: 0 sendToViewport: true } @@ -6924,51 +5604,51 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 326; y: 14 + x: 205; y: 60 modifiers: 0 sendToViewport: true } Frame { - msec: 14752 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14240 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 328; y: 12 + x: 223; y: 56 modifiers: 0 sendToViewport: true } + Frame { + msec: 14256 + hash: "194ebac4ae7d95bf427f8161885a13e1" + } Mouse { type: 5 button: 0 buttons: 0 - x: 331; y: 11 + x: 239; y: 52 modifiers: 0 sendToViewport: true } - Frame { - msec: 14768 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } Mouse { type: 5 button: 0 buttons: 0 - x: 334; y: 10 + x: 255; y: 46 modifiers: 0 sendToViewport: true } Frame { - msec: 14784 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14272 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 337; y: 9 + x: 269; y: 40 modifiers: 0 sendToViewport: true } @@ -6976,19 +5656,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 340; y: 8 + x: 285; y: 34 modifiers: 0 sendToViewport: true } Frame { - msec: 14800 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14288 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 342; y: 7 + x: 299; y: 28 modifiers: 0 sendToViewport: true } @@ -6996,19 +5676,19 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 345; y: 5 + x: 313; y: 20 modifiers: 0 sendToViewport: true } Frame { - msec: 14816 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14304 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Mouse { type: 5 button: 0 buttons: 0 - x: 348; y: 3 + x: 320; y: 18 modifiers: 0 sendToViewport: true } @@ -7016,192 +5696,172 @@ VisualTest { type: 5 button: 0 buttons: 0 - x: 351; y: 0 + x: 326; y: 15 modifiers: 0 sendToViewport: true } Frame { - msec: 14832 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 14848 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 14864 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 14880 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 14896 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 14912 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" - } - Frame { - msec: 14928 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14320 + hash: "194ebac4ae7d95bf427f8161885a13e1" } - Frame { - msec: 14944 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + Mouse { + type: 5 + button: 0 + buttons: 0 + x: 340; y: 7 + modifiers: 0 + sendToViewport: true } Frame { - msec: 14960 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14336 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14976 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14352 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 14992 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14368 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15008 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14384 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15024 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14400 + image: "mouseregion.14.png" } Frame { - msec: 15040 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14416 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15056 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14432 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15072 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14448 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15088 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14464 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15104 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14480 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15120 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14496 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15136 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14512 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15152 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14528 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15168 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14544 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15184 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14560 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15200 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14576 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15216 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14592 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15232 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14608 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15248 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14624 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15264 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14640 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15280 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14656 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15296 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14672 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15312 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14688 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15328 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14704 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15344 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14720 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15360 - image: "mouseregion.15.png" + msec: 14736 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15376 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14752 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15392 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14768 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15408 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14784 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15424 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14800 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15440 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14816 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15456 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14832 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15472 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14848 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15488 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14864 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15504 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14880 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15520 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14896 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15536 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14912 + hash: "194ebac4ae7d95bf427f8161885a13e1" } Frame { - msec: 15552 - hash: "32b1a05d3c6a7c219cc36bbf0c7d3da8" + msec: 14928 + hash: "194ebac4ae7d95bf427f8161885a13e1" } } diff --git a/tests/auto/declarative/visual/qmlmouseregion/mouseregion.qml b/tests/auto/declarative/visual/qmlmouseregion/mouseregion.qml index 3bd1812..ab4223d 100644 --- a/tests/auto/declarative/visual/qmlmouseregion/mouseregion.qml +++ b/tests/auto/declarative/visual/qmlmouseregion/mouseregion.qml @@ -104,4 +104,21 @@ Rectangle { } } } + + // click, then double click me - nothing should happen + Rectangle { + x: 100 + y: 50 + width: 98; height: 48 + color: "red" + MouseRegion { + id: mr7 + anchors.fill: parent + enabled: false + onClicked: { parent.color = "blue" } + onPressed: { parent.color = "yellow" } + onReleased: { parent.color = "cyan" } + onDoubleClicked: { parent.color = "green" } + } + } } -- cgit v0.12 From 1e28371e8cd568292bb75667e7a2b19fd7953748 Mon Sep 17 00:00:00 2001 From: Andreas Aardal Hanssen Date: Fri, 13 Nov 2009 12:21:48 +0100 Subject: Build on non-g++ compilers. Uncommenting these lines might have been a mistake during the merge (sha1 14821863b830b85ccb29df217a52f1ca52c9c421). Reviewed-by: kkoehne --- src/declarative/declarative.pro | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index 62ae289..5c74314 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -9,8 +9,10 @@ solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2 unix:QMAKE_PKGCONFIG_REQUIRES = QtCore QtGui QtXml -QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors -LIBS += -lgcov +# *-g++* { +# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage -fno-elide-constructors +# LIBS += -lgcov +# } INCLUDEPATH += ../../include/QtDeclarative -- cgit v0.12 From 946eab3e327bddcce10ed838462c0ca56ff011f0 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Fri, 13 Nov 2009 13:44:40 +0100 Subject: Avoid clipping last pixel of text in QML in some cases We would floor the width of the text layout and clip the output to this, hence cutting away the last pixel of the text in cases where the text width was not pixel aligned. Task-number: QTBUG-5431 Reviewed-by: Gunnar --- src/declarative/graphicsitems/qmlgraphicstext.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qmlgraphicstext.cpp b/src/declarative/graphicsitems/qmlgraphicstext.cpp index 504eb2a..d0aec8d 100644 --- a/src/declarative/graphicsitems/qmlgraphicstext.cpp +++ b/src/declarative/graphicsitems/qmlgraphicstext.cpp @@ -50,6 +50,7 @@ #include #include #include +#include QT_BEGIN_NAMESPACE QML_DEFINE_TYPE(Qt,4,6,Text,QmlGraphicsText) @@ -600,7 +601,7 @@ QSize QmlGraphicsTextPrivate::setupTextLayout(QTextLayout *layout) line.setPosition(QPointF(0, height)); height += int(line.height()); } - return QSize((int)widthUsed, height); + return QSize(qCeil(widthUsed), height); } QPixmap QmlGraphicsTextPrivate::wrappedTextImage(bool drawStyle) -- cgit v0.12 From 48738dd945f8eb3112ce295c37a67632121020e7 Mon Sep 17 00:00:00 2001 From: Aaron Kennedy Date: Mon, 16 Nov 2009 11:53:49 +1000 Subject: QmlEngine tests --- src/declarative/qml/qmlengine.cpp | 16 +- tests/auto/declarative/declarative.pro | 1 + tests/auto/declarative/qmlengine/qmlengine.pro | 8 + tests/auto/declarative/qmlengine/tst_qmlengine.cpp | 176 +++++++++++++++++++++ 4 files changed, 190 insertions(+), 11 deletions(-) create mode 100644 tests/auto/declarative/qmlengine/qmlengine.pro create mode 100644 tests/auto/declarative/qmlengine/tst_qmlengine.cpp diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index b6f3bde..66d4990 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -427,22 +427,16 @@ QmlContext *QmlEngine::contextForObject(const QObject *object) */ void QmlEngine::setContextForObject(QObject *object, QmlContext *context) { - QObjectPrivate *priv = QObjectPrivate::get(object); - - QmlDeclarativeData *data = - static_cast(priv->declarativeData); + if (!object || !context) + return; - if (data && data->context) { + QmlDeclarativeData *data = QmlDeclarativeData::get(object, true); + if (data->context) { qWarning("QmlEngine::setContextForObject(): Object already has a QmlContext"); return; } - if (!data) { - priv->declarativeData = new QmlDeclarativeData(context); - } else { - data->context = context; - } - + data->context = context; context->d_func()->contextObjects.append(object); } diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro index bcf908d..ec2c7d0 100644 --- a/tests/auto/declarative/declarative.pro +++ b/tests/auto/declarative/declarative.pro @@ -18,6 +18,7 @@ SUBDIRS += \ qmldom \ # Cover qmleasefollow \ # Cover qmlecmascript \ # Cover + qmlengine \ # Cover qmlerror \ # Cover qmlfontloader \ # Cover qmlgraphicsborderimage \ # Cover diff --git a/tests/auto/declarative/qmlengine/qmlengine.pro b/tests/auto/declarative/qmlengine/qmlengine.pro new file mode 100644 index 0000000..21d55a4 --- /dev/null +++ b/tests/auto/declarative/qmlengine/qmlengine.pro @@ -0,0 +1,8 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative webkit network +macx:CONFIG -= app_bundle + +SOURCES += tst_qmlengine.cpp + +# Define SRCDIR equal to test's source directory +DEFINES += SRCDIR=\\\"$$PWD\\\" diff --git a/tests/auto/declarative/qmlengine/tst_qmlengine.cpp b/tests/auto/declarative/qmlengine/tst_qmlengine.cpp new file mode 100644 index 0000000..ef1eee5 --- /dev/null +++ b/tests/auto/declarative/qmlengine/tst_qmlengine.cpp @@ -0,0 +1,176 @@ +/**************************************************************************** +** +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include +#include +#include +#include +#include +#include +#include +#include + +class tst_qmlengine : public QObject +{ + Q_OBJECT +public: + tst_qmlengine() {} + +private slots: + void rootContext(); + void networkAccessManager(); + void baseUrl(); + void contextForObject(); + void offlineStoragePath(); +}; + +void tst_qmlengine::rootContext() +{ + QmlEngine engine; + + QVERIFY(engine.rootContext()); + + QCOMPARE(engine.rootContext()->engine(), &engine); + QVERIFY(engine.rootContext()->parentContext() == 0); +} + +void tst_qmlengine::networkAccessManager() +{ + QmlEngine *engine = new QmlEngine; + + // Test QmlEngine created manager + QPointer manager = engine->networkAccessManager(); + QVERIFY(manager != 0); + + // Test non-QmlEngine owner manager + QNetworkAccessManager localManager; + engine->setNetworkAccessManager(&localManager); + QVERIFY(manager == 0); + QVERIFY(engine->networkAccessManager() == &localManager); + + // Test QmlEngine owned manager + QPointer ownedManager = new QNetworkAccessManager(engine); + QVERIFY(ownedManager != 0); + engine->setNetworkAccessManager(ownedManager); + QVERIFY(engine->networkAccessManager() == ownedManager); + engine->setNetworkAccessManager(&localManager); + QVERIFY(ownedManager == 0); + QVERIFY(engine->networkAccessManager() == &localManager); + + // Test setting a null manager + engine->setNetworkAccessManager(0); + QVERIFY(engine->networkAccessManager() != 0); +} + +void tst_qmlengine::baseUrl() +{ + QmlEngine engine; + + QUrl cwd = QUrl::fromLocalFile(QDir::currentPath() + QDir::separator()); + + QCOMPARE(engine.baseUrl(), cwd); + QCOMPARE(engine.rootContext()->resolvedUrl(QUrl("main.qml")), cwd.resolved(QUrl("main.qml"))); + + QDir dir = QDir::current(); + dir.cdUp(); + QVERIFY(dir != QDir::current()); + QDir::setCurrent(dir.path()); + QVERIFY(QDir::current() == dir); + + QUrl cwd2 = QUrl::fromLocalFile(QDir::currentPath() + QDir::separator()); + QCOMPARE(engine.baseUrl(), cwd2); + QCOMPARE(engine.rootContext()->resolvedUrl(QUrl("main.qml")), cwd2.resolved(QUrl("main.qml"))); + + engine.setBaseUrl(cwd); + QCOMPARE(engine.baseUrl(), cwd); + QCOMPARE(engine.rootContext()->resolvedUrl(QUrl("main.qml")), cwd.resolved(QUrl("main.qml"))); +} + +void tst_qmlengine::contextForObject() +{ + QmlEngine *engine = new QmlEngine; + + // Test null-object + QVERIFY(QmlEngine::contextForObject(0) == 0); + + // Test an object with no context + QObject object; + QVERIFY(QmlEngine::contextForObject(&object) == 0); + + // Test setting null-object + QmlEngine::setContextForObject(0, engine->rootContext()); + + // Test setting null-context + QmlEngine::setContextForObject(&object, 0); + + // Test setting context + QmlEngine::setContextForObject(&object, engine->rootContext()); + QVERIFY(QmlEngine::contextForObject(&object) == engine->rootContext()); + + QmlContext context(engine->rootContext()); + + // Try changing context + QTest::ignoreMessage(QtWarningMsg, "QmlEngine::setContextForObject(): Object already has a QmlContext"); + QmlEngine::setContextForObject(&object, &context); + QVERIFY(QmlEngine::contextForObject(&object) == engine->rootContext()); + + // Delete context + delete engine; engine = 0; + QVERIFY(QmlEngine::contextForObject(&object) == 0); +} + +void tst_qmlengine::offlineStoragePath() +{ + QmlEngine engine; + + QDir dir(QDesktopServices::storageLocation(QDesktopServices::DataLocation)); + dir.cd("QML"); + dir.cd("OfflineStorage"); + + QCOMPARE(engine.offlineStoragePath(), dir.path()); + + engine.setOfflineStoragePath(QDir::homePath()); + QCOMPARE(engine.offlineStoragePath(), QDir::homePath()); +} + +QTEST_MAIN(tst_qmlengine) + +#include "tst_qmlengine.moc" -- cgit v0.12