aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative/qsgitem
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2011-05-19 16:19:44 +1000
committerMartin Jones <martin.jones@nokia.com>2011-05-19 17:22:19 +1000
commitd774fc5f255fdd2443bd82a5fd87f4e4756e8a1b (patch)
treeaaa7b0ff98850af7d00bea1ee7fca3c7de0b6c16 /tests/auto/declarative/qsgitem
parentaf5facf92d521cbfca9ceed50cce4b39b8f3d304 (diff)
Link item focus to canvas widget focus.
Diffstat (limited to 'tests/auto/declarative/qsgitem')
-rw-r--r--tests/auto/declarative/qsgitem/tst_qsgitem.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/declarative/qsgitem/tst_qsgitem.cpp b/tests/auto/declarative/qsgitem/tst_qsgitem.cpp
index 746b186c1e..a59988ff10 100644
--- a/tests/auto/declarative/qsgitem/tst_qsgitem.cpp
+++ b/tests/auto/declarative/qsgitem/tst_qsgitem.cpp
@@ -97,6 +97,18 @@ private slots:
void enabled();
void mouseGrab();
+
+private:
+ void ensureFocus(QWidget *w) {
+ w->show();
+ qApp->setActiveWindow(w);
+ qApp->processEvents();
+
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(w);
+#endif
+ }
};
tst_qsgitem::tst_qsgitem()
@@ -192,6 +204,7 @@ struct FocusState : public QHash<QSGItem *, FocusData>
void tst_qsgitem::simpleFocus()
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *l1c1 = new TestItem(canvas.rootItem());
QSGItem *l1c2 = new TestItem(canvas.rootItem());
@@ -241,6 +254,7 @@ void tst_qsgitem::simpleFocus()
void tst_qsgitem::scopedFocus()
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *l1c1 = new TestItem(canvas.rootItem());
QSGItem *l1c2 = new TestItem(canvas.rootItem());
@@ -319,6 +333,7 @@ void tst_qsgitem::addedToCanvas()
{
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *item = new TestItem;
@@ -337,6 +352,7 @@ void tst_qsgitem::addedToCanvas()
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *item = new TestItem(canvas.rootItem());
@@ -364,6 +380,7 @@ void tst_qsgitem::addedToCanvas()
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *tree = new TestItem;
QSGItem *c1 = new TestItem(tree);
@@ -386,6 +403,7 @@ void tst_qsgitem::addedToCanvas()
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *tree = new TestFocusScope;
QSGItem *c1 = new TestItem(tree);
QSGItem *c2 = new TestItem(tree);
@@ -412,6 +430,7 @@ void tst_qsgitem::addedToCanvas()
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *tree = new TestFocusScope;
QSGItem *c1 = new TestItem(tree);
QSGItem *c2 = new TestItem(tree);
@@ -436,6 +455,7 @@ void tst_qsgitem::addedToCanvas()
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *child = new TestItem(canvas.rootItem());
QSGItem *tree = new TestFocusScope;
QSGItem *c1 = new TestItem(tree);
@@ -474,6 +494,7 @@ void tst_qsgitem::changeParent()
// Parent to no parent
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *child = new TestItem(canvas.rootItem());
FocusState focusState;
@@ -494,6 +515,7 @@ void tst_qsgitem::changeParent()
// Different parent, same focus scope
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *child = new TestItem(canvas.rootItem());
QSGItem *child2 = new TestItem(canvas.rootItem());
@@ -513,6 +535,7 @@ void tst_qsgitem::changeParent()
// Different parent, different focus scope
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *child = new TestItem(canvas.rootItem());
QSGItem *child2 = new TestFocusScope(canvas.rootItem());
QSGItem *item = new TestItem(child);
@@ -533,6 +556,7 @@ void tst_qsgitem::changeParent()
}
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *child = new TestItem(canvas.rootItem());
QSGItem *child2 = new TestFocusScope(canvas.rootItem());
QSGItem *item = new TestItem(child2);
@@ -553,6 +577,7 @@ void tst_qsgitem::changeParent()
}
{
QSGCanvas canvas;
+ ensureFocus(&canvas);
QSGItem *child = new TestItem(canvas.rootItem());
QSGItem *child2 = new TestFocusScope(canvas.rootItem());
QSGItem *item = new TestItem(child2);