summaryrefslogtreecommitdiffstats
path: root/src/testlib/qtestkeyboard.h
diff options
context:
space:
mode:
authorJoão Abecasis <joao.abecasis@nokia.com>2012-03-08 01:27:27 +0100
committerJoão Abecasis <joao.abecasis@nokia.com>2012-03-08 01:27:39 +0100
commit12f221410fbe41d0b2efda4cd3289dfcf9044aa8 (patch)
tree897cf6bfb1814b0935982ff5975a6cbfb48d6d9e /src/testlib/qtestkeyboard.h
parent3d19422ef16a230bb11dbbfe4a8cc9667f39bf15 (diff)
parent6c612c933803ef57ea45e907d0181b40659148ac (diff)
Merge remote-tracking branch 'origin/master' into api_changes
Diffstat (limited to 'src/testlib/qtestkeyboard.h')
-rw-r--r--src/testlib/qtestkeyboard.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/testlib/qtestkeyboard.h b/src/testlib/qtestkeyboard.h
index 897c732f45..5625bd606c 100644
--- a/src/testlib/qtestkeyboard.h
+++ b/src/testlib/qtestkeyboard.h
@@ -192,18 +192,20 @@ namespace QTest
if (!widget)
widget = QWidget::keyboardGrabber();
if (!widget) {
+ // Popup widgets stealthily steal the keyboard grab
+ if (QWidget *apw = QApplication::activePopupWidget())
+ widget = apw->focusWidget() ? apw->focusWidget() : apw;
+ }
+ if (!widget) {
QWindow *window = QGuiApplication::focusWindow();
if (window) {
sendKeyEvent(action, window, code, text, modifier, delay);
return;
}
-
- if (QWidget *apw = QApplication::activePopupWidget())
- widget = apw->focusWidget() ? apw->focusWidget() : apw;
- else
- widget = QApplication::focusWidget();
}
if (!widget)
+ widget = QApplication::focusWidget();
+ if (!widget)
widget = QApplication::activeWindow();
QTEST_ASSERT(widget);