• Toni Barzic's avatar
    Events on shelf items should not dismiss the app list · 1a1ae049
    Toni Barzic authored
    AppListPresetnerDelegateImpl adds a pre target event handler that
    dismisses the app list when the user clicks or taps outside the app list
    bounds. Certain areas of the shelf are excluded from handling, but they
    do not include shelf app buttons. This means that the app list hides
    when the user presses the mouse on a shelf app button, or shelf arrows.
    
    This breaks shelf interactions in HTML fullscreen mode, where the shelf
    is only shown with the app list. The app list gets hidden before the
    mouse is released, which also hides the shelf (note that auto-hide lock
    set by the AppListControllerImpl does not work in this case, as the
    shelf transitions to HIDDEN state when the app list is hidden). This
    prevents shelf app button clicks from getting handled - ShelfAppButton
    ignores click events if the shelf is not visible.
    
    In addition to breaking HTML fullscreen mode, hiding app list when the
    user starts interacting with a shelf app button creates other unexpected
    interactions. For example, dismissing app list when the user clicks a
    scrollable shelf arrow is not intuitive. Note that the app list will get
    hidden when an app gets launched from the shelf (if the user clicks a
    shelf app button).
    
    BUG=1097131, 1090713
    
    Change-Id: I6b87b17eb9550840aeb0a2a0728baf9e49e96010
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2261260Reviewed-by: default avatarAlex Newcomer <newcomer@chromium.org>
    Commit-Queue: Toni Baržić <tbarzic@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#781564}
    1a1ae049
hotseat_widget.cc 39.6 KB