Merge lp:~lukas-kde/unity8/hideCursorFullscreen into lp:unity8
- hideCursorFullscreen
- Merge into trunk
Status: | Merged |
---|---|
Approved by: | Albert Astals Cid |
Approved revision: | 2611 |
Merged at revision: | 2665 |
Proposed branch: | lp:~lukas-kde/unity8/hideCursorFullscreen |
Merge into: | lp:unity8 |
Prerequisite: | lp:~mzanetti/unity8/unified-stages |
Diff against target: |
78 lines (+40/-0) 3 files modified
qml/Shell.qml (+10/-0) tests/mocks/Cursor/Cursor.qml (+2/-0) tests/qmltests/tst_Shell.qml (+28/-0) |
To merge this branch: | bzr merge lp:~lukas-kde/unity8/hideCursorFullscreen |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Unity8 CI Bot | continuous-integration | Needs Fixing | |
Albert Astals Cid (community) | Approve | ||
Review via email:
|
This proposal supersedes a proposal from 2016-09-01.
Commit message
Hide the cursor for fullscreen apps after 3 seconds of inactivity
Description of the change
Hide the cursor for fullscreen apps after 3 seconds of inactivity.
The cursor is revealed again when the mouse is moved.
To test, launch the webbrowser app, navigate to youtube, play your favorite video in fullscreen
* Are there any related MPs required for this MP to build/function as expected? Please list.
lp:~mzanetti/unity8/unified-stages
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
N/A
* If you changed the UI, has there been a design review?
N/A, following unity7 behavior
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2606
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2607
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
Do we need a test for this?
Is there a bug/Design card/something where it says this is a wanted feature?
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
> Do we need a test for this?
I'll try to think of something, yeah
> Is there a bug/Design card/something where it says this is a wanted feature?
Well it's just filling the gaps for missing features compared to u7; I'm asking Paty for an informal UX approval as I'm writing this
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal | # |
Added the test, Paty's response:
Paty Davila, [29.09.16 13:28]
so go ahead, I think it's nice to have : )
Paty Davila, [29.09.16 13:29]
i don't see anything else that I could question or object
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2608
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
PASSED: Continuous integration, rev:2609
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal | # |
FAILED: Continuous integration, rev:2610
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Albert Astals Cid (aacid) wrote : Posted in a previous version of this proposal | # |
* Did you perform an exploratory manual test run of the code change and any related functionality?
Yes
* Did CI run pass? If not, please explain why.
jenkins failing on its usual java stuff
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Lukáš Tinkl (lukas-kde) wrote : | # |
Resubmitted on top of lp:~mzanetti/unity8/unified-stages
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Albert Astals Cid (aacid) wrote : | # |
Same code as before
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2611
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Preview Diff
1 | === modified file 'qml/Shell.qml' | |||
2 | --- qml/Shell.qml 2016-10-03 11:16:17 +0000 | |||
3 | +++ qml/Shell.qml 2016-10-03 11:16:18 +0000 | |||
4 | @@ -697,8 +697,16 @@ | |||
5 | 697 | } | 697 | } |
6 | 698 | } | 698 | } |
7 | 699 | 699 | ||
8 | 700 | Timer { | ||
9 | 701 | id: cursorHidingTimer | ||
10 | 702 | interval: 3000 | ||
11 | 703 | running: panel.focusedSurfaceIsFullscreen && cursor.opacity > 0 | ||
12 | 704 | onTriggered: cursor.opacity = 0; | ||
13 | 705 | } | ||
14 | 706 | |||
15 | 700 | Cursor { | 707 | Cursor { |
16 | 701 | id: cursor | 708 | id: cursor |
17 | 709 | objectName: "cursor" | ||
18 | 702 | visible: shell.hasMouse | 710 | visible: shell.hasMouse |
19 | 703 | z: itemGrabber.z + 1 | 711 | z: itemGrabber.z + 1 |
20 | 704 | topBoundaryOffset: panel.panelHeight | 712 | topBoundaryOffset: panel.panelHeight |
21 | @@ -772,6 +780,8 @@ | |||
22 | 772 | mouseNeverMoved = false; | 780 | mouseNeverMoved = false; |
23 | 773 | cursor.opacity = 1; | 781 | cursor.opacity = 1; |
24 | 774 | } | 782 | } |
25 | 783 | |||
26 | 784 | Behavior on opacity { UbuntuNumberAnimation {} } | ||
27 | 775 | } | 785 | } |
28 | 776 | 786 | ||
29 | 777 | // non-visual object | 787 | // non-visual object |
30 | 778 | 788 | ||
31 | === modified file 'tests/mocks/Cursor/Cursor.qml' | |||
32 | --- tests/mocks/Cursor/Cursor.qml 2016-09-07 08:36:59 +0000 | |||
33 | +++ tests/mocks/Cursor/Cursor.qml 2016-10-03 11:16:18 +0000 | |||
34 | @@ -29,4 +29,6 @@ | |||
35 | 29 | signal pushedBottomRightCorner(real amount, int buttons) | 29 | signal pushedBottomRightCorner(real amount, int buttons) |
36 | 30 | signal pushStopped() | 30 | signal pushStopped() |
37 | 31 | signal mouseMoved() | 31 | signal mouseMoved() |
38 | 32 | |||
39 | 33 | onMouseMoved: opacity = 1; | ||
40 | 32 | } | 34 | } |
41 | 33 | 35 | ||
42 | === modified file 'tests/qmltests/tst_Shell.qml' | |||
43 | --- tests/qmltests/tst_Shell.qml 2016-10-03 11:16:17 +0000 | |||
44 | +++ tests/qmltests/tst_Shell.qml 2016-10-03 11:16:18 +0000 | |||
45 | @@ -2733,5 +2733,33 @@ | |||
46 | 2733 | tryCompare(dashAppDelegate, "y", initialY); | 2733 | tryCompare(dashAppDelegate, "y", initialY); |
47 | 2734 | SurfaceManager.inputMethodSurface.state = oldOSKState; | 2734 | SurfaceManager.inputMethodSurface.state = oldOSKState; |
48 | 2735 | } | 2735 | } |
49 | 2736 | |||
50 | 2737 | function test_cursorHidingWithFullscreenApp() { | ||
51 | 2738 | loadShell("desktop"); | ||
52 | 2739 | shell.usageScenario = "desktop"; | ||
53 | 2740 | waitForRendering(shell); | ||
54 | 2741 | swipeAwayGreeter(); | ||
55 | 2742 | |||
56 | 2743 | // load some fullscreen app | ||
57 | 2744 | var cameraSurfaceId = topLevelSurfaceList.nextId; | ||
58 | 2745 | var cameraApp = ApplicationManager.startApplication("camera-app"); | ||
59 | 2746 | waitUntilAppWindowIsFullyLoaded(cameraSurfaceId); | ||
60 | 2747 | |||
61 | 2748 | var cursor = findChild(shell, "cursor"); | ||
62 | 2749 | verify(cursor); | ||
63 | 2750 | tryCompare(cursor, "opacity", 1); | ||
64 | 2751 | |||
65 | 2752 | // let the timer kick in and verify the cursor got hidden | ||
66 | 2753 | wait(3000); | ||
67 | 2754 | tryCompare(cursor, "opacity", 0); | ||
68 | 2755 | |||
69 | 2756 | // simulate moving the mouse, check the cursor is visible again | ||
70 | 2757 | cursor.mouseMoved(); | ||
71 | 2758 | tryCompare(cursor, "opacity", 1); | ||
72 | 2759 | |||
73 | 2760 | // let the timer kick in again and verify the cursor got hidden | ||
74 | 2761 | wait(3000); | ||
75 | 2762 | tryCompare(cursor, "opacity", 0); | ||
76 | 2763 | } | ||
77 | 2736 | } | 2764 | } |
78 | 2737 | } | 2765 | } |
FAILED: Continuous integration, rev:2605 /unity8- jenkins. ubuntu. com/job/ lp-unity8- ci/2083/ /unity8- jenkins. ubuntu. com/job/ build/2729/ console /unity8- jenkins. ubuntu. com/job/ build-0- fetch/2757 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= vivid+overlay/ 2630 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= xenial+ overlay/ 2630 /unity8- jenkins. ubuntu. com/job/ build-1- sourcepkg/ release= yakkety/ 2630 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= vivid+overlay/ 2622 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= vivid+overlay/ 2622/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2622 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2622/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=amd64, release= yakkety/ 2622/console /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= vivid+overlay/ 2622 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= vivid+overlay/ 2622/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2622 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2622/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= yakkety/ 2622 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=armhf, release= yakkety/ 2622/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= vivid+overlay/ 2622 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= vivid+overlay/ 2622/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2622 /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2622/artifact/ output/ *zip*/output. zip /unity8- jenkins. ubuntu. com/job/ build-2- binpkg/ arch=i386, release= yakkety/ 2622/console
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild: /unity8- jenkins. ubuntu. com/job/ lp-unity8- ci/2083/ rebuild
https:/