on xenial help sign in
return a bool so that we can accept the event from QML
commit05d9ed4f82077efbe58ce408d07305ae73ed7691 authorLukáš Tinkl <lukas.tinkl@canonical.com> dateThu 5 Jan 2017, 13:35 (10 years ago) parent43912ea
3 files changed+10−6
plugins/Utils/tabfocusfence.cpp+6−2 plugins/Utils/tabfocusfence.h+2−2 qml/Components/ShellDialog.qml+2−2
plugins/Utils/tabfocusfence.cpp+6−2
@@ -25,26 +25,30 @@ TabFocusFenceItem::TabFocusFenceItem(QQuickItem *parent) : QQuickItem(parent)
2525 setFlag(ItemIsFocusScope);
2626}
2727
28−void TabFocusFenceItem::focusNext()
28+bool TabFocusFenceItem::focusNext()
2929{
3030 QQuickItem * current = scopedFocusItem();
3131 if (current) {
3232 QQuickItem * next = scopedFocusItem()->nextItemInFocusChain(true);
3333 if (next) {
3434 next->setFocus(true, Qt::TabFocusReason);
35+ return true;
3536 }
3637 }
38+ return false;
3739}
3840
39−void TabFocusFenceItem::focusPrev()
41+bool TabFocusFenceItem::focusPrev()
4042{
4143 QQuickItem * current = scopedFocusItem();
4244 if (current) {
4345 QQuickItem * prev = scopedFocusItem()->nextItemInFocusChain(false);
4446 if (prev) {
4547 prev->setFocus(true, Qt::BacktabFocusReason);
48+ return true;
4649 }
4750 }
51+ return false;
4852}
4953
5054void TabFocusFenceItem::keyPressEvent(QKeyEvent *event)
plugins/Utils/tabfocusfence.h+2−2
@@ -28,8 +28,8 @@ Q_OBJECT
2828public:
2929 TabFocusFenceItem(QQuickItem *parent = nullptr);
3030
31− Q_INVOKABLE void focusNext();
32− Q_INVOKABLE void focusPrev();
31+ Q_INVOKABLE bool focusNext();
32+ Q_INVOKABLE bool focusPrev();
3333
3434 void keyPressEvent(QKeyEvent *event) override;
3535 void keyReleaseEvent(QKeyEvent *event) override;
qml/Components/ShellDialog.qml+2−2
@@ -62,10 +62,10 @@ Dialog {
6262 spacing: units.gu(2)
6363 }
6464 Keys.onDownPressed: {
65− focusNext();
65+ event.accepted = focusNext();
6666 }
6767 Keys.onUpPressed: {
68− focusPrev();
68+ event.accepted = focusPrev();
6969 }
7070 }
7171}