Chromium Code Reviews| Index: ui/app_list/views/start_page_view.cc |
| diff --git a/ui/app_list/views/start_page_view.cc b/ui/app_list/views/start_page_view.cc |
| index 0bac15b7b2ab6f8edd0963a7683af447347acb52..b0d2c5dfbad8e29af73eb6ff846c1dcbb52e188b 100644 |
| --- a/ui/app_list/views/start_page_view.cc |
| +++ b/ui/app_list/views/start_page_view.cc |
| @@ -172,25 +172,28 @@ TileItemView* StartPageView::StartPageTilesContainer::GetTileItemView( |
| } |
| int StartPageView::StartPageTilesContainer::Update() { |
| + std::vector<SearchResult*> display_results = |
| + AppListModel::FilterSearchResultsByDisplayType( |
| + results(), SearchResult::DISPLAY_RECOMMENDATION, kNumStartPageTiles); |
| + |
| // Ignore updates and disable buttons when transitioning to a different |
| // state. |
| if (contents_view_->GetActiveState() != AppListModel::STATE_START) { |
| for (auto* view : search_result_tile_views_) |
| view->SetEnabled(false); |
| - return num_results(); |
| + // We still need to update the number: add 1 to the results size to account |
| + // for the all apps button. |
| + return display_results.size() + 1; |
|
xiyuan
2017/01/03 17:05:13
Not sure whether this is the right thing to do. We
xdai1
2017/01/03 19:15:41
Emmm... In this case the approach in the first pat
|
| } |
| - std::vector<SearchResult*> display_results = |
| - AppListModel::FilterSearchResultsByDisplayType( |
| - results(), SearchResult::DISPLAY_RECOMMENDATION, kNumStartPageTiles); |
| if (display_results.size() != search_result_tile_views_.size()) { |
| // We should recreate the grid layout in this case. |
| for (size_t i = 0; i < search_result_tile_views_.size(); ++i) |
| delete search_result_tile_views_[i]; |
| search_result_tile_views_.clear(); |
| RemoveChildView(all_apps_button_); |
| - CreateAppsGrid(std::min(kNumStartPageTiles, display_results.size())); |
|
xiyuan
2017/01/03 17:05:14
Would this change have side effect that we might d
xdai1
2017/01/03 19:15:41
The maximum number of |display_results| is kNumSta
|
| + CreateAppsGrid(display_results.size()); |
| } |
| // Update the tile item results. |
| @@ -211,10 +214,10 @@ int StartPageView::StartPageTilesContainer::Update() { |
| void StartPageView::StartPageTilesContainer::UpdateSelectedIndex( |
| int old_selected, |
| int new_selected) { |
| - if (old_selected >= 0) |
| + if (old_selected >= 0 && old_selected < num_results()) |
| GetTileItemView(old_selected)->SetSelected(false); |
| - if (new_selected >= 0) |
| + if (new_selected >= 0 && new_selected < num_results()) |
| GetTileItemView(new_selected)->SetSelected(true); |
| } |