@@ -132,6 +132,24 @@ Item {
132132 shell.activateApplication(app);
133133 }
134134
135+ QtObject {
136+ id: cursorPriv
137+ property bool touchDetected: false;
138+
139+ function hideCursor() {
140+ touchDetected = true;
141+ shell.cursorVisible = false;
142+ }
143+
144+ function revealCursor() {
145+ if (touchDetected) {
146+ touchDetected = false;
147+ Mir.cursorName = "";
148+ shell.cursorVisible = true;
149+ }
150+ }
151+ }
152+
135153 Binding {
136154 target: LauncherModel
137155 property: "applicationManager"
@@ -147,6 +165,7 @@ Item {
147165 }
148166
149167 LightDM{id: lightDM} // Provide backend access
168+
150169 VolumeControl {
151170 id: volumeControl
152171 indicators: panel.indicators
@@ -178,6 +197,12 @@ Item {
178197
179198 HomeKeyWatcher {
180199 onActivated: { launcher.fadeOut(); shell.showHome(); }
200+ onWindowTouched: { cursorPriv.hideCursor(); }
201+ onWindowReleased: {
202+ // store the last known touch position
203+ cursor.x = pos.x;
204+ cursor.y = pos.y;
205+ }
181206 }
182207
183208 Item {
@@ -663,6 +688,7 @@ Item {
663688 id: cursor
664689 visible: shell.hasMouse
665690 z: screenGrabber.z + 1
691+ opacity: shell.cursorVisible ? 1 : 0
666692
667693 onPushedLeftBoundary: {
668694 if (buttons === Qt.NoButton) {
@@ -676,6 +702,10 @@ Item {
676702 applicationsDisplayLoader.item.pushRightEdge(amount);
677703 }
678704 }
705+
706+ onMouseMoved: {
707+ cursorPriv.revealCursor();
708+ }
679709 }
680710
681711 Rectangle {