on xenial help sign in
Handle key scrolling
87d63c5Josh Arenson
qml/Greeter/SessionsList.qml+19
@@ -42,6 +42,24 @@ Item {
42 }
42 }
43 }
43 }
44
44
45+ function currentKey() {
46+ var session = LightDMService.sessions.data(
47+ sessionsList.currentIndex, LightDMService.sessionRoles.KeyRole)
48+ return session;
49+ }
50+
51+ Keys.onDownPressed: {
52+ if (sessionsList.currentIndex < sessionsList.model.count - 1)
53+ sessionsList.currentIndex++;
54+ sessionSelected(currentKey());
55+ }
56+
57+ Keys.onUpPressed: {
58+ if (sessionsList.currentIndex > 0)
59+ sessionsList.currentIndex--;
60+ sessionSelected(currentKey());
61+ }
62+
45 LoginAreaContainer {
63 LoginAreaContainer {
46 readonly property real margins: sessionsList.anchors.margins
64 readonly property real margins: sessionsList.anchors.margins
47 readonly property real prefferedHeight: {
65 readonly property real prefferedHeight: {
@@ -101,6 +119,7 @@ Item {
101
119
102 headerPositioning: ListView.OverlayHeader
120 headerPositioning: ListView.OverlayHeader
103 highlightFollowsCurrentItem: false
121 highlightFollowsCurrentItem: false
122+
104 delegate: ListItem {
123 delegate: ListItem {
105 id: delegate
124 id: delegate
106 objectName: "sessionDelegate" + index
125 objectName: "sessionDelegate" + index
qml/Greeter/WideView.qml+3−1
@@ -131,11 +131,12 @@ FocusScope {
131 }
131 }
132
132
133 model: root.userModel
133 model: root.userModel
134−
135 currentSession: LightDMService.greeter.defaultSession
134 currentSession: LightDMService.greeter.defaultSession
136 onResponded: root.responded(response)
135 onResponded: root.responded(response)
137 onSelected: root.selected(index)
136 onSelected: root.selected(index)
138 onSessionChooserButtonClicked: parent.state = "SessionsList"
137 onSessionChooserButtonClicked: parent.state = "SessionsList"
138+
139+ Keys.forwardTo: [sessionChooserLoader.item]
139 }
140 }
140
141
141 Loader {
142 Loader {
@@ -151,6 +152,7 @@ FocusScope {
151
152
152 active: false
153 active: false
153
154
155+ onLoaded: sessionChooserLoader.item.focus = true;
154 Binding {
156 Binding {
155 target: sessionChooserLoader.item
157 target: sessionChooserLoader.item
156 property: "initiallySelectedSession"
158 property: "initiallySelectedSession"