@@ -24,10 +24,13 @@ import Unity.Platform 1.0
2424import Utils 0.1
2525import "../Greeter"
2626
27−Item {
27+MouseArea {
2828 id: root
29+ acceptedButtons: Qt.AllButtons
30+ hoverEnabled: true
31+ onWheel: wheel.accepted = true
2932
30− readonly property alias hasActiveDialog: dialogLoader.active
33+ readonly property bool hasActiveDialog: dialogLoader.active || d.modeSwitchWarningPopup
3134
3235 // to be set from outside, useful mostly for testing purposes
3336 property var unitySessionService: DBusUnitySessionService
@@ -42,6 +45,7 @@ Item {
4245 }
4346 property string usageScenario
4447 property size screenSize: Qt.size(Screen.width, Screen.height)
48+ property bool hasKeyboard: false
4549
4650 signal powerOffClicked();
4751
@@ -120,6 +124,11 @@ Item {
120124 onTriggered: LightDMService.greeter.showGreeter()
121125 }
122126
127+ GlobalShortcut { // lock screen
128+ shortcut: Qt.MetaModifier|Qt.Key_L
129+ onTriggered: LightDMService.greeter.showGreeter()
130+ }
131+
123132 QtObject {
124133 id: d // private stuff
125134 objectName: "dialogsPrivate"
@@ -155,6 +164,7 @@ Item {
155164 LightDMService.greeter.showGreeter()
156165 logoutDialog.hide();
157166 }
167+ Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason)
158168 }
159169 Button {
160170 width: parent.width
@@ -198,6 +208,7 @@ Item {
198208 rebootDialog.hide();
199209 }
200210 color: theme.palette.normal.negative
211+ Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason)
201212 }
202213 }
203214 }
@@ -218,6 +229,7 @@ Item {
218229 root.powerOffClicked();
219230 }
220231 color: theme.palette.normal.negative
232+ Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason)
221233 }
222234 Button {
223235 width: parent.width