on xenial help sign in
Restore Esc to close dialog + test
cec096aAlbert Astals Cid
plugins/Utils/tabfocusfence.cpp+4
@@ -30,6 +30,8 @@ void TabFocusFenceItem::keyPressEvent(QKeyEvent *event)
30 // Needed so we eat Tab keys when there's only one item inside the fence
30 // Needed so we eat Tab keys when there's only one item inside the fence
31 if (event->key() == Qt::Key_Tab) {
31 if (event->key() == Qt::Key_Tab) {
32 event->accept();
32 event->accept();
33+ } else {
34+ QQuickItem::keyPressEvent(event);
33 }
35 }
34}
36}
35
37
@@ -38,5 +40,7 @@ void TabFocusFenceItem::keyReleaseEvent(QKeyEvent *event)
38 // Needed so we eat Tab keys when there's only one item inside the fence
40 // Needed so we eat Tab keys when there's only one item inside the fence
39 if (event->key() == Qt::Key_Tab) {
41 if (event->key() == Qt::Key_Tab) {
40 event->accept();
42 event->accept();
43+ } else {
44+ QQuickItem::keyReleaseEvent(event);
41 }
45 }
42}
46}
tests/qmltests/tst_OrientedShell.qml+18
@@ -1577,6 +1577,24 @@ Rectangle {
1577
1577
1578 keyClick(Qt.Key_Tab);
1578 keyClick(Qt.Key_Tab);
1579 tryCompare(buttons[0], "activeFocus", true);
1579 tryCompare(buttons[0], "activeFocus", true);
1580+
1581+ keyClick(Qt.Key_Escape);
1582+
1583+ var dialogLoader = findChild(orientedShell, "dialogLoader");
1584+ tryCompare(dialogLoader, "item", null);
1585+ }
1586+
1587+ function test_escColosesShutdownDialog() {
1588+ loadShell("mako");
1589+
1590+ testCase.showPowerDialog();
1591+
1592+ var dialogLoader = findChild(orientedShell, "dialogLoader");
1593+ tryCompareFunction(function() { return dialogLoader.item !== null }, true);
1594+
1595+ keyClick(Qt.Key_Escape);
1596+
1597+ tryCompare(dialogLoader, "item", null);
1580 }
1598 }
1581 }
1599 }
1582}
1600}