Merge lp:~lukas-kde/unity8/shellDialogImprovements into lp:unity8

Proposed by Lukáš Tinkl
Status: Merged
Approved by: Michael Zanetti
Approved revision: 2686
Merged at revision: 2773
Proposed branch: lp:~lukas-kde/unity8/shellDialogImprovements
Merge into: lp:unity8
Prerequisite: lp:~aacid/unity8/tab_focus_fence_dialogs
Diff against target: 234 lines (+66/-11)
8 files modified
plugins/Utils/tabfocusfence.cpp (+26/-0)
plugins/Utils/tabfocusfence.h (+3/-0)
qml/Components/Dialogs.qml (+14/-2)
qml/Components/ShellDialog.qml (+6/-2)
qml/OrientedShell.qml (+2/-1)
qml/Shell.qml (+3/-0)
tests/qmltests/tst_OrientedShell.qml (+12/-5)
tests/qmltests/tst_Shell.qml (+0/-1)
To merge this branch: bzr merge lp:~lukas-kde/unity8/shellDialogImprovements
Reviewer Review Type Date Requested Status
Unity8 CI Bot continuous-integration Approve
Michael Zanetti (community) Approve
Review via email: mp+314061@code.launchpad.net

This proposal supersedes a proposal from 2016-10-31.

Commit message

Shell dialog improvements (kbd focus, mouse eater)

Description of the change

Shell dialog improvements:
- put a mouse eater behind the shell dialog, prevents interacting/hovering over shell elements, like changing cursor shape over a window edge
- with a keyboard, put focus on the first/affirmative action button
- add an alternative Lock screen shortcut (as in u7)
- cleanups

To post a comment you must log in.
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2609
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2146/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2823
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1566
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1566
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1566
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2851
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2709/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2709
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2709/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2146/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

PASSED: Continuous integration, rev:2673
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2463/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3237
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1857
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1857
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/1857
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3265
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3119/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3119
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3119/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2463/rebuild

review: Approve (continuous-integration)
Revision history for this message
Michael Zanetti (mzanetti) : Posted in a previous version of this proposal
review: Needs Information
Revision history for this message
Lukáš Tinkl (lukas-kde) : Posted in a previous version of this proposal
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

PASSED: Continuous integration, rev:2677
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2789/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3651
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2089
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2089
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3679
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3524/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2789/rebuild

review: Approve (continuous-integration)
Revision history for this message
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal

Can you explain why the MouseArea is needed? According to the UITK docs, the Dialog component should be modal and do this on its own already.

review: Needs Information
Revision history for this message
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal

> Can you explain why the MouseArea is needed? According to the UITK docs, the
> Dialog component should be modal and do this on its own already.

Yeah the modality of the dialog is fine, I guess it's just the hover/wheel then:

+ hoverEnabled: true
+ onWheel: wheel.accepted = true

Because without this, I can still see the "resize" cursor shape of the window below, thru the dialog

Revision history for this message
Michael Zanetti (mzanetti) wrote : Posted in a previous version of this proposal

hmmmm... sounds like a bug in the Dialog component then, doesn't it?

If we keep it in here, wouldn't it make sense to move it into Dialogs.qml, perhaps making the root Item in there a MouseArea?

review: Needs Information
Revision history for this message
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal

> hmmmm... sounds like a bug in the Dialog component then, doesn't it?
>
> If we keep it in here, wouldn't it make sense to move it into Dialogs.qml,
> perhaps making the root Item in there a MouseArea?

Yeah, that makes sense imo; I'll rebase this branch on top of https://code.launchpad.net/~aacid/unity8/tab_focus_fence_dialogs/+merge/313681 and add it here

Revision history for this message
Lukáš Tinkl (lukas-kde) wrote :

Done, resubmitted with Dialogs.qml being a MouseArea itself

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2679
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2811/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3678
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2109
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2109
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3706
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3550
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3550/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3550
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3550/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3550
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3550/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3550
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3550/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3550
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3550/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3550
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3550/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2811/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2680
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2812/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3679
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2110
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2110
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3707
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3551
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3551/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3551
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3551/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3551
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3551/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3551
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3551/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3551
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3551/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3551
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3551/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2812/rebuild

review: Needs Fixing (continuous-integration)
2681. By Lukáš Tinkl

design: always focus the first/affirmative action

Revision history for this message
Lukáš Tinkl (lukas-kde) wrote :

Follow design/UX advice: always pre-focus the first/affirmative action

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2681
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2820/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3692
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2117
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2117
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3720
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3564/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3564
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3564/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2820/rebuild

review: Needs Fixing (continuous-integration)
2682. By Lukáš Tinkl

fix hasActiveDialog

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2682
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2823/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3695
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2120
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2120
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3723
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3567
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3567/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3567
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3567/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3567
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3567/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3567
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3567/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3567
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3567/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3567
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3567/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2823/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2682
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2825/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3698
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2122
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2122
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3726
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3570
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3570/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3570
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3570/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3570
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3570/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3570
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3570/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3570
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3570/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3570
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3570/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2825/rebuild

review: Approve (continuous-integration)
Revision history for this message
Michael Zanetti (mzanetti) wrote :

Seems to work mostly fine.

Atm one can only use the Tab/Backtab keys to navigate the menu. This is different from unity7 where the arrow keys are used. I think it's ok to keep the tab navigation but IMO we should also add arrow navigation to it. Wdyt?

review: Needs Information
Revision history for this message
Lukáš Tinkl (lukas-kde) wrote :

> Seems to work mostly fine.
>
> Atm one can only use the Tab/Backtab keys to navigate the menu. This is
> different from unity7 where the arrow keys are used. I think it's ok to keep
> the tab navigation but IMO we should also add arrow navigation to it. Wdyt?

Yup, I will add it

2683. By Lukáš Tinkl

allow up/down keys to manipulate focus in the fenced focus chain

Revision history for this message
Lukáš Tinkl (lukas-kde) wrote :

> Seems to work mostly fine.
>
> Atm one can only use the Tab/Backtab keys to navigate the menu. This is
> different from unity7 where the arrow keys are used. I think it's ok to keep
> the tab navigation but IMO we should also add arrow navigation to it. Wdyt?

Yup, added respective focusNext/Prev methods to the fence; it has the advantage you can bind arbitrary keys to it from QML.

2684. By Lukáš Tinkl

return a bool so that we can accept the event from QML

2685. By Lukáš Tinkl

use current, don't deref twice

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2683
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2830/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3705
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2129
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2129
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3733
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3577
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3577/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3577
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3577/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3577
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3577/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3577
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3577/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3577
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3577/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3577
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3577/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2830/rebuild

review: Approve (continuous-integration)
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2685
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2832/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3707
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2131
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2131
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3735
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3579
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3579/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3579
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3579/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3579
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3579/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3579
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3579/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3579
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3579/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3579
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3579/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2832/rebuild

review: Approve (continuous-integration)
Revision history for this message
Michael Zanetti (mzanetti) wrote :

tested, works fine, code looks good too

IMO a test wouldn't hurt, wdyt?

review: Needs Information
2686. By Lukáš Tinkl

test both Tab and Down keys

Revision history for this message
Michael Zanetti (mzanetti) wrote :

lgtm. top-approving when ci agrees

review: Approve
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2686
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2844/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/3722
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/2143
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=zesty,testname=qmluitests.sh/2143
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/3750
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3594
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/3594/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3594
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=zesty/3594/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3594
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/3594/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3594
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=zesty/3594/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3594
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/3594/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3594
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=zesty/3594/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2844/rebuild

review: Approve (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'plugins/Utils/tabfocusfence.cpp'
2--- plugins/Utils/tabfocusfence.cpp 2017-01-09 13:02:35 +0000
3+++ plugins/Utils/tabfocusfence.cpp 2017-01-09 13:02:35 +0000
4@@ -25,6 +25,32 @@
5 setFlag(ItemIsFocusScope);
6 }
7
8+bool TabFocusFenceItem::focusNext()
9+{
10+ QQuickItem * current = scopedFocusItem();
11+ if (current) {
12+ QQuickItem * next = current->nextItemInFocusChain(true);
13+ if (next) {
14+ next->setFocus(true, Qt::TabFocusReason);
15+ return true;
16+ }
17+ }
18+ return false;
19+}
20+
21+bool TabFocusFenceItem::focusPrev()
22+{
23+ QQuickItem * current = scopedFocusItem();
24+ if (current) {
25+ QQuickItem * prev = current->nextItemInFocusChain(false);
26+ if (prev) {
27+ prev->setFocus(true, Qt::BacktabFocusReason);
28+ return true;
29+ }
30+ }
31+ return false;
32+}
33+
34 void TabFocusFenceItem::keyPressEvent(QKeyEvent *event)
35 {
36 // Needed so we eat Tab keys when there's only one item inside the fence
37
38=== modified file 'plugins/Utils/tabfocusfence.h'
39--- plugins/Utils/tabfocusfence.h 2017-01-09 13:02:35 +0000
40+++ plugins/Utils/tabfocusfence.h 2017-01-09 13:02:35 +0000
41@@ -28,6 +28,9 @@
42 public:
43 TabFocusFenceItem(QQuickItem *parent = nullptr);
44
45+ Q_INVOKABLE bool focusNext();
46+ Q_INVOKABLE bool focusPrev();
47+
48 void keyPressEvent(QKeyEvent *event) override;
49 void keyReleaseEvent(QKeyEvent *event) override;
50 };
51
52=== modified file 'qml/Components/Dialogs.qml'
53--- qml/Components/Dialogs.qml 2017-01-09 13:02:35 +0000
54+++ qml/Components/Dialogs.qml 2017-01-09 13:02:35 +0000
55@@ -24,10 +24,13 @@
56 import Utils 0.1
57 import "../Greeter"
58
59-Item {
60+MouseArea {
61 id: root
62+ acceptedButtons: Qt.AllButtons
63+ hoverEnabled: true
64+ onWheel: wheel.accepted = true
65
66- readonly property alias hasActiveDialog: dialogLoader.active
67+ readonly property bool hasActiveDialog: dialogLoader.active || d.modeSwitchWarningPopup
68
69 // to be set from outside, useful mostly for testing purposes
70 property var unitySessionService: DBusUnitySessionService
71@@ -42,6 +45,7 @@
72 }
73 property string usageScenario
74 property size screenSize: Qt.size(Screen.width, Screen.height)
75+ property bool hasKeyboard: false
76
77 signal powerOffClicked();
78
79@@ -120,6 +124,11 @@
80 onTriggered: LightDMService.greeter.showGreeter()
81 }
82
83+ GlobalShortcut { // lock screen
84+ shortcut: Qt.MetaModifier|Qt.Key_L
85+ onTriggered: LightDMService.greeter.showGreeter()
86+ }
87+
88 QtObject {
89 id: d // private stuff
90 objectName: "dialogsPrivate"
91@@ -155,6 +164,7 @@
92 LightDMService.greeter.showGreeter()
93 logoutDialog.hide();
94 }
95+ Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason)
96 }
97 Button {
98 width: parent.width
99@@ -198,6 +208,7 @@
100 rebootDialog.hide();
101 }
102 color: theme.palette.normal.negative
103+ Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason)
104 }
105 }
106 }
107@@ -218,6 +229,7 @@
108 root.powerOffClicked();
109 }
110 color: theme.palette.normal.negative
111+ Component.onCompleted: if (root.hasKeyboard) forceActiveFocus(Qt.TabFocusReason)
112 }
113 Button {
114 width: parent.width
115
116=== modified file 'qml/Components/ShellDialog.qml'
117--- qml/Components/ShellDialog.qml 2017-01-09 13:02:35 +0000
118+++ qml/Components/ShellDialog.qml 2017-01-09 13:02:35 +0000
119@@ -37,8 +37,6 @@
120
121 onVisibleChanged: { if (!visible && dialogLoader) { dialogLoader.active = false; } }
122
123- Keys.onEscapePressed: hide()
124-
125 focus: true
126
127 // FIXME: this is a hack because Dialog subtheming seems broken atm
128@@ -63,5 +61,11 @@
129 width: parent.width
130 spacing: units.gu(2)
131 }
132+ Keys.onDownPressed: {
133+ event.accepted = focusNext();
134+ }
135+ Keys.onUpPressed: {
136+ event.accepted = focusPrev();
137+ }
138 }
139 }
140
141=== modified file 'qml/OrientedShell.qml'
142--- qml/OrientedShell.qml 2016-09-01 07:40:06 +0000
143+++ qml/OrientedShell.qml 2017-01-09 13:02:35 +0000
144@@ -260,7 +260,8 @@
145 nativeWidth: root.width
146 nativeHeight: root.height
147 mode: applicationArguments.mode
148- hasMouse: miceModel.count + touchPadModel.count > 0
149+ hasMouse: pointerInputDevices > 0
150+ hasKeyboard: keyboardsModel.count > 0
151 // TODO: Factor in if the current screen is a touch screen and if the user wants to
152 // have multiple keyboards around. For now we only enable one keyboard at a time
153 // thus hiding it here if there is a physical one around or if we have a second
154
155=== modified file 'qml/Shell.qml'
156--- qml/Shell.qml 2016-12-12 16:45:09 +0000
157+++ qml/Shell.qml 2017-01-09 13:02:35 +0000
158@@ -68,6 +68,7 @@
159 stage.updateFocusedAppOrientationAnimated();
160 }
161 property bool hasMouse: false
162+ property bool hasKeyboard: false
163
164 // to be read from outside
165 readonly property int mainAppWindowOrientationAngle: stage.mainAppWindowOrientationAngle
166@@ -647,8 +648,10 @@
167 id: dialogs
168 objectName: "dialogs"
169 anchors.fill: parent
170+ visible: hasActiveDialog
171 z: overlay.z + 10
172 usageScenario: shell.usageScenario
173+ hasKeyboard: shell.hasKeyboard
174 onPowerOffClicked: {
175 shutdownFadeOutRectangle.enabled = true;
176 shutdownFadeOutRectangle.visible = true;
177
178=== modified file 'tests/qmltests/tst_OrientedShell.qml'
179--- tests/qmltests/tst_OrientedShell.qml 2017-01-09 13:02:35 +0000
180+++ tests/qmltests/tst_OrientedShell.qml 2017-01-09 13:02:35 +0000
181@@ -1559,7 +1559,14 @@
182 return surface.activeFocus;
183 }
184
185- function test_tabCyclyingInShutdownDialog() {
186+ function test_tabCyclyingInShutdownDialog_data() {
187+ return [
188+ {tag: "TAB", key: Qt.Key_Tab},
189+ {tag: "DOWN", key: Qt.Key_Down}
190+ ];
191+ }
192+
193+ function test_tabCyclyingInShutdownDialog(data) {
194 loadShell("mako");
195
196 testCase.showPowerDialog();
197@@ -1569,13 +1576,13 @@
198
199 tryCompare(buttons[0], "activeFocus", true);
200
201- keyClick(Qt.Key_Tab);
202+ keyClick(data.key);
203 tryCompare(buttons[1], "activeFocus", true);
204
205- keyClick(Qt.Key_Tab);
206+ keyClick(data.key);
207 tryCompare(buttons[2], "activeFocus", true);
208
209- keyClick(Qt.Key_Tab);
210+ keyClick(data.key);
211 tryCompare(buttons[0], "activeFocus", true);
212
213 keyClick(Qt.Key_Escape);
214@@ -1584,7 +1591,7 @@
215 tryCompare(dialogLoader, "item", null);
216 }
217
218- function test_escColosesShutdownDialog() {
219+ function test_escClosesShutdownDialog() {
220 loadShell("mako");
221
222 testCase.showPowerDialog();
223
224=== modified file 'tests/qmltests/tst_Shell.qml'
225--- tests/qmltests/tst_Shell.qml 2016-12-12 16:45:09 +0000
226+++ tests/qmltests/tst_Shell.qml 2017-01-09 13:02:35 +0000
227@@ -560,7 +560,6 @@
228 // is loaded by default
229 tearDown();
230 }
231-
232 }
233
234 function cleanup() {

Subscribers

People subscribed via source and target branches