diff --git a/ui/app_list/views/app_list_view.h b/ui/app_list/views/app_list_view.h index 00615eadca9dfe..b720f8e7ca20b4 100644 --- a/ui/app_list/views/app_list_view.h +++ b/ui/app_list/views/app_list_view.h @@ -207,6 +207,8 @@ class APP_LIST_EXPORT AppListView : public views::WidgetDelegateView, bool is_tablet_mode() const { return is_tablet_mode_; } + bool is_side_shelf() const { return is_side_shelf_; } + bool is_in_drag() const { return is_in_drag_; } int app_list_y_position_in_screen() const { diff --git a/ui/app_list/views/apps_grid_view.cc b/ui/app_list/views/apps_grid_view.cc index 9858db947475cb..f8841671dee656 100644 --- a/ui/app_list/views/apps_grid_view.cc +++ b/ui/app_list/views/apps_grid_view.cc @@ -2204,9 +2204,14 @@ bool AppsGridView::IsPointWithinBottomDragBuffer( display::Screen::GetScreen()->GetDisplayNearestView( GetWidget()->GetNativeView()); - return point_in_screen.y() > - GetBoundsInScreen().height() - kPageFlipZoneSize && - point_in_screen.y() < display.work_area().height(); + const int kBottomDragBufferMin = + GetBoundsInScreen().bottom() - kPageFlipZoneSize; + const int kBottomDragBufferMax = + display.bounds().bottom() - + (contents_view_->app_list_view()->is_side_shelf() ? 0 : kShelfSize); + + return point_in_screen.y() > kBottomDragBufferMin && + point_in_screen.y() < kBottomDragBufferMax; } void AppsGridView::ButtonPressed(views::Button* sender,