@@ -18,6 +18,7 @@ import QtQuick 2.4
18import QtQuick.Window 2.2
18import QtQuick.Window 2.2
19import Unity.InputInfo 0.1
19import Unity.InputInfo 0.1
20import Unity.Session 0.1
20import Unity.Session 0.1
21+import Unity.Screens 0.1
21import GSettings 1.0
22import GSettings 1.0
22import "Components"
23import "Components"
23import "Rotation"
24import "Rotation"
@@ -78,6 +79,15 @@ Rectangle {
78 deviceFilter: InputInfo.Keyboard
79 deviceFilter: InputInfo.Keyboard
83+ id: touchScreensModel
84+ deviceFilter: InputInfo.TouchScreen
81 property int orientation
91 property int orientation
82 onPhysicalOrientationChanged: {
92 onPhysicalOrientationChanged: {
83 if (!orientationLocked) {
93 if (!orientationLocked) {
@@ -106,13 +116,6 @@ Rectangle {
106 (shell.orientation & supportedOrientations) === 0 ? true
116 (shell.orientation & supportedOrientations) === 0 ? true
107 : shell.orientationChangesEnabled
117 : shell.orientationChangesEnabled
112− property: "stayHidden"
113− value: keyboardsModel.count > 0
116 Binding {
119 Binding {
117 target: oskSettings
120 target: oskSettings
118 property: "disableHeight"
121 property: "disableHeight"
@@ -189,6 +192,11 @@ Rectangle {
189 nativeHeight: root.height
192 nativeHeight: root.height
190 mode: applicationArguments.mode
193 mode: applicationArguments.mode
191 hasMouse: miceModel.count + touchPadModel.count > deviceConfiguration.ignoredMice
194 hasMouse: miceModel.count + touchPadModel.count > deviceConfiguration.ignoredMice
195+ // TODO: Factor in if the current screen is a touch screen and if the user wants to
196+ // have multiple keyboards around. For now we only enable one keyboard at a time
197+ // thus hiding it here if there is a physical one around or if we have a second
198+ // screen (the virtual touchpad & osk on the phone) attached.
199+ oskVisible: keyboardsModel.count === 0 && screens.count === 1
193 // TODO: Factor in the connected input devices (eg: physical keyboard, mouse, touchscreen),
201 // TODO: Factor in the connected input devices (eg: physical keyboard, mouse, touchscreen),
194 // what's the output device (eg: big TV, desktop monitor, phone display), etc.
202 // what's the output device (eg: big TV, desktop monitor, phone display), etc.