• Toni Barzic's avatar
    Update shelf state when shelf config changes · 14763b9f
    Toni Barzic authored
    Shelf config change may cause hotseat state change, so we should update
    the hotseat state (which is done in ShelfLayoutManager::SetState) when
    the shelf config changes, otherwise, the hotseat state change may lag
    behind the shelf layout change.
    
    For example, layout may hide the opaque shelf background if config
    changes to non-in-app shelf, and animating background animation starts
    when the hotseat state changes. So, if the hotseat state change lags
    after the shelf layout change for long enough, we might see a flash of
    animating shelf background after the opaque shelf background has been
    hidden.
    
    This was noticed while implementing swipe to overview/home with VK
    shown (when swiping to go home, the animating shelf would occasionally
    pop up with a delay) - added a test for sequence of events in that case.
    
    (Note that this means that the hotseat state may get calculated before
    app list visibility on tablet mode change, so add back logic that moved
    hotseat in kShownHomeLauncher state if the home should be visible at
    that point in time).
    
    BUG=b:145704293
    
    Change-Id: I4e6ce883eed8674159b03c25336fd82c9d20c50d
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2090757
    Commit-Queue: Toni Baržić <tbarzic@chromium.org>
    Reviewed-by: default avatarManu Cornet <manucornet@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#747552}
    14763b9f
shelf_layout_manager.cc 100 KB