Fix QQuickApplication::activate test.
ApplicationActivate and ApplicationDeactivate events are now delivered. Task-number: QTBUG-21573 Task-number: QTBUG-23331 Change-Id: I58e8d7c7730c66ec210f04a74a945d3eece61e01 Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
This commit is contained in:
parent
24edabccfe
commit
2edefe3677
|
@ -45,6 +45,7 @@
|
||||||
#include <QtQuick/qquickitem.h>
|
#include <QtQuick/qquickitem.h>
|
||||||
#include <QtQuick/qquickview.h>
|
#include <QtQuick/qquickview.h>
|
||||||
#include <QtGui/qinputmethod.h>
|
#include <QtGui/qinputmethod.h>
|
||||||
|
#include <qpa/qwindowsysteminterface.h>
|
||||||
|
|
||||||
class tst_qquickapplication : public QObject
|
class tst_qquickapplication : public QObject
|
||||||
{
|
{
|
||||||
|
@ -79,37 +80,27 @@ void tst_qquickapplication::active()
|
||||||
"}", QUrl::fromLocalFile(""));
|
"}", QUrl::fromLocalFile(""));
|
||||||
QQuickItem *item = qobject_cast<QQuickItem *>(component.create());
|
QQuickItem *item = qobject_cast<QQuickItem *>(component.create());
|
||||||
QVERIFY(item);
|
QVERIFY(item);
|
||||||
QQuickView view;
|
QQuickCanvas canvas;
|
||||||
item->setParentItem(view.rootObject());
|
item->setParentItem(canvas.rootItem());
|
||||||
|
|
||||||
// not active
|
// not active
|
||||||
QVERIFY(!item->property("active").toBool());
|
QVERIFY(!item->property("active").toBool());
|
||||||
QVERIFY(!item->property("active2").toBool());
|
QVERIFY(!item->property("active2").toBool());
|
||||||
QCOMPARE(item->property("active").toBool(), QGuiApplication::focusWindow() != 0);
|
|
||||||
|
|
||||||
// active
|
// active
|
||||||
view.show();
|
canvas.show();
|
||||||
view.requestActivateWindow();
|
canvas.requestActivateWindow();
|
||||||
QTest::qWait(50);
|
QTest::qWaitForWindowActive(&canvas);
|
||||||
QEXPECT_FAIL("", "QTBUG-21573", Abort);
|
QVERIFY(QGuiApplication::focusWindow() == &canvas);
|
||||||
QTRY_COMPARE(view.status(), QQuickView::Ready);
|
QVERIFY(item->property("active").toBool());
|
||||||
QCOMPARE(item->property("active").toBool(), QGuiApplication::focusWindow() != 0);
|
QVERIFY(item->property("active2").toBool());
|
||||||
QCOMPARE(item->property("active2").toBool(), QGuiApplication::focusWindow() != 0);
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
// QGuiApplication has no equivalent of setActiveWindow(0). QTBUG-21573
|
|
||||||
// Is this different to clearing the active state of the window or can it be removed?
|
|
||||||
// On Mac, setActiveWindow(0) on mac does not deactivate the current application,
|
|
||||||
// must switch to a different app or hide the current app to trigger this
|
|
||||||
// on mac, setActiveWindow(0) on mac does not deactivate the current application
|
|
||||||
// (you have to switch to a different app or hide the current app to trigger this)
|
|
||||||
|
|
||||||
// not active again
|
// not active again
|
||||||
QGuiApplication::setActiveWindow(0);
|
QWindowSystemInterface::handleWindowActivated(0);
|
||||||
QVERIFY(!item->property("active").toBool());
|
|
||||||
QCOMPARE(item->property("active").toBool(), QGuiApplication::focusWindow() != 0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
QTRY_VERIFY(QGuiApplication::focusWindow() != &canvas);
|
||||||
|
QVERIFY(!item->property("active").toBool());
|
||||||
|
QVERIFY(!item->property("active2").toBool());
|
||||||
}
|
}
|
||||||
|
|
||||||
void tst_qquickapplication::layoutDirection()
|
void tst_qquickapplication::layoutDirection()
|
||||||
|
|
Loading…
Reference in New Issue