Events on shelf items should not dismiss the app list
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:Alex Newcomer <newcomer@chromium.org> Commit-Queue: Toni Baržić <tbarzic@chromium.org> Cr-Commit-Position: refs/heads/master@{#781564}
Showing
Please register or sign in to comment