From 69eaa4052c5d5e8f4ac2f87e2ef3362c5d429e64 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 23 Jan 2017 10:45:54 +0100 Subject: QQuickAbstractButton: don't leak space key events Unlike mouse events, key events are not accepted by default. Key events must be accepted to avoid event propagation. Change-Id: I8d9217e6f18d56515470bef2507d462edd274ce2 Reviewed-by: Mitch Curtis --- tests/auto/controls/data/tst_abstractbutton.qml | 36 +++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'tests/auto/controls/data/tst_abstractbutton.qml') diff --git a/tests/auto/controls/data/tst_abstractbutton.qml b/tests/auto/controls/data/tst_abstractbutton.qml index b785b7a1..157616d6 100644 --- a/tests/auto/controls/data/tst_abstractbutton.qml +++ b/tests/auto/controls/data/tst_abstractbutton.qml @@ -125,4 +125,40 @@ TestCase { control.destroy() } + + Component { + id: keyCatcher + Item { + property int lastKeyPress: -1 + property int lastKeyRelease: -1 + Keys.onPressed: lastKeyPress = event.key + Keys.onReleased: lastKeyRelease = event.key + } + } + + function test_keyEvents_data() { + return [ + { tag: "space", key: Qt.Key_Space, result: -1 }, + { tag: "backspace", key: Qt.Key_Backspace, result: Qt.Key_Backspace } + ] + } + + function test_keyEvents(data) { + var container = keyCatcher.createObject(testCase) + verify(container) + + var control = button.createObject(container) + verify(control) + + control.forceActiveFocus() + verify(control.activeFocus) + + keyPress(data.key) + compare(container.lastKeyPress, data.result) + + keyRelease(data.key) + compare(container.lastKeyRelease, data.result) + + container.destroy() + } } -- cgit v1.2.3