From 19e5c2057b9f127726018d3e39a62066317a983f Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Thu, 13 Jul 2017 14:37:18 +0200 Subject: Fix propagation of unhandled key press events Unhandled key presses for printable keys were not received by the parent widget anymore. This was a regression from 5.8.0. The propagation is suppressed if NativeWebKeyboardEvent::skip_in_browser is true. Commit 4501b9d8 accidentally removed the wrong skip_in_browser assignment. Task-number: QTBUG-61621 Change-Id: I7eafa1fac5fb9a7edc4af2bc1aac21c106264713 Reviewed-by: Peter Varga --- tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp') diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 8509e9a2d..7fbbd63d3 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -447,16 +447,25 @@ void tst_QWebEngineView::unhandledKeyEventPropagation() QTRY_COMPARE(parentWidget.releaseEvents.size(), 3); QCOMPARE(evaluateJavaScriptSync(webView.page(), "document.activeElement.id").toString(), QStringLiteral("second_div")); + // Focus the button and press 'y'. + evaluateJavaScriptSync(webView.page(), "document.getElementById('submit_button').focus()"); + QTRY_COMPARE(evaluateJavaScriptSync(webView.page(), "document.activeElement.id").toString(), QStringLiteral("submit_button")); + QTest::sendKeyEvent(QTest::Press, webView.focusProxy(), Qt::Key_Y, 'y', Qt::NoModifier); + QTest::sendKeyEvent(QTest::Release, webView.focusProxy(), Qt::Key_Y, 'y', Qt::NoModifier); + QTRY_COMPARE(parentWidget.releaseEvents.size(), 4); + // The page will consume the Tab key to change focus between elements while the arrow // keys won't be used. - QCOMPARE(parentWidget.pressEvents.size(), 2); + QCOMPARE(parentWidget.pressEvents.size(), 3); QCOMPARE(parentWidget.pressEvents[0].key(), (int)Qt::Key_Right); QCOMPARE(parentWidget.pressEvents[1].key(), (int)Qt::Key_Left); + QCOMPARE(parentWidget.pressEvents[2].key(), (int)Qt::Key_Y); // Key releases will all come back unconsumed. QCOMPARE(parentWidget.releaseEvents[0].key(), (int)Qt::Key_Right); QCOMPARE(parentWidget.releaseEvents[1].key(), (int)Qt::Key_Tab); QCOMPARE(parentWidget.releaseEvents[2].key(), (int)Qt::Key_Left); + QCOMPARE(parentWidget.releaseEvents[3].key(), (int)Qt::Key_Y); } void tst_QWebEngineView::horizontalScrollbarTest() -- cgit v1.2.3