diff options
author | Martin Jones <martin.jones@nokia.com> | 2011-05-19 16:19:44 +1000 |
---|---|---|
committer | Martin Jones <martin.jones@nokia.com> | 2011-05-19 17:22:19 +1000 |
commit | d774fc5f255fdd2443bd82a5fd87f4e4756e8a1b (patch) | |
tree | aaa7b0ff98850af7d00bea1ee7fca3c7de0b6c16 /tests/auto/declarative/qsgitem | |
parent | af5facf92d521cbfca9ceed50cce4b39b8f3d304 (diff) |
Link item focus to canvas widget focus.
Change-Id: I7da1db30819c80b48f4c285a43274b668c686826
Diffstat (limited to 'tests/auto/declarative/qsgitem')
-rw-r--r-- | tests/auto/declarative/qsgitem/tst_qsgitem.cpp | 25 |
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); |