commit | f61c4452f813592d30ad86dcb0ea92f13eb49898 | [log] [tgz] |
---|---|---|
author | Toni Barzic <tbarzic@google.com> | Thu Oct 05 03:57:48 2017 |
committer | Commit Bot <commit-bot@chromium.org> | Thu Oct 05 03:57:48 2017 |
tree | 0adbe8446aad9b7c0a46d3fa095e977414a96f68 | |
parent | 8792ef52806dd22458a5dc00e26242d4742054f9 [diff] |
Add lock screen app window to lock screen focus cycle Adds lock screen app windows to the lock screen focus cycle for views based lock screen. The focus cycle is as follows: Lock screen -> lock screen apps -> system shelf -> system tray On lock screen apps side nothing changed, though views screen locker now implements lock_screen_apps::FocusCyclerDelegate interface, and adds itself to lock screen apps state as the focus cycler delegate implementation). FocusCyclerDelegate is used by state controller to accept and hand off focus between lock screen app windows and the rest of lock screen UI (and is already in use for Web UI lock screen). As lock_screen_apps::FocusCyclerDelegate, ViewsScreenLocker delegates focus handout requests between lock_screen_apps::StateController and LockContentsView using lock_screen mojo interface. General flow is as follows: 1. LockContentsView is notified that system tray or lock screen apps have lost focus. 2. LockContentsView determines whether it is next in line to get focus * if it is, it focuses the appropriate child * if not, it passes focus on - either * to lock screen apps using FocusLockScreenApps mojo message * to system tray/shelf using shell's focus cycler 3. Once the focus is leaving lock screen apps or system shelf/tray they notify LockScreenContents view the focus should be handed off: * lock screen apps using HandleFocusLeavingLockScreenApps mojo request (which gets passed on to LockContentsView using LoginDataDispatcher) * system tray/shelf using system tray notifier BUG=746596 Change-Id: Ic4e1edd77193ae90203358671a2dd000c9aeefa2 Reviewed-on: https://chromium-review.googlesource.com/696673 Commit-Queue: Toni Barzic <tbarzic@chromium.org> Reviewed-by: James Cook <jamescook@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Jacob Dufault <jdufault@chromium.org> Cr-Commit-Position: refs/heads/master@{#506640}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .