• Toni Barzic's avatar
    Restack shelf widget on session state change · 0a4c7d45
    Toni Barzic authored
    In active user session, shelf container has multiple widgets -
    navigation widget, hotseat widget, status area widget, shelf widget.
    Of these, shelf widget contains the shelf background, and its bounds
    intersect with all other widgets. For this reason, it's expected to be
    stacked at the bottom of the container. The shelf widget stacking is
    set up during widget creation. This works in active session state, as
    the shelf widget itself is not expected to be activated, and thus
    stacked at the top of the container.
    For login shelf, though, the shelf widget can get activated (it contains
    login shelf buttons, which can be focused, e.g. by tab traversal). Shelf
    widget being stacked above other windows in the container is not an
    issue on login/lock screen (login shelf widget does not interfere with
    the only other visible widget - status area widget), but when the
    session state changes, the shelf widget should ensure it gets restacked
    at the bottom again, so the shelf background does not get painted over
    other widgets.
    
    NOTE: This was not an issue before M-82, as shelf widget was in a
    separate window container.
    
    BUG=1051823
    
    Change-Id: I65e34fc1347d20976cb5441da91e00efb96b0885
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2058998Reviewed-by: default avatarAhmed Fakhry <afakhry@chromium.org>
    Commit-Queue: Toni Baržić <tbarzic@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#745719}
    0a4c7d45
login_shelf_view_unittest.cc 28.2 KB