| 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 ab8be81a2d976b5f27b6fc08532c24f024fb9c3a..c4e0ce79d62f6b0e9f40a4b576adb98322fdd288 100644
|
| --- a/ui/app_list/views/start_page_view.cc
|
| +++ b/ui/app_list/views/start_page_view.cc
|
| @@ -68,7 +68,8 @@ class SearchBoxSpacerView : public views::View {
|
| class StartPageView::StartPageTilesContainer
|
| : public SearchResultContainerView {
|
| public:
|
| - explicit StartPageTilesContainer(AllAppsTileItemView* all_apps_button);
|
| + StartPageTilesContainer(ContentsView* contents_view,
|
| + AllAppsTileItemView* all_apps_button);
|
| ~StartPageTilesContainer() override;
|
|
|
| TileItemView* GetTileItemView(size_t index);
|
| @@ -85,6 +86,8 @@ class StartPageView::StartPageTilesContainer
|
| void OnContainerSelected(bool from_bottom) override;
|
|
|
| private:
|
| + ContentsView* contents_view_;
|
| +
|
| std::vector<SearchResultTileItemView*> search_result_tile_views_;
|
| AllAppsTileItemView* all_apps_button_;
|
|
|
| @@ -92,8 +95,9 @@ class StartPageView::StartPageTilesContainer
|
| };
|
|
|
| StartPageView::StartPageTilesContainer::StartPageTilesContainer(
|
| + ContentsView* contents_view,
|
| AllAppsTileItemView* all_apps_button)
|
| - : all_apps_button_(all_apps_button) {
|
| + : contents_view_(contents_view), all_apps_button_(all_apps_button) {
|
| views::BoxLayout* tiles_layout_manager =
|
| new views::BoxLayout(views::BoxLayout::kHorizontal, 0, 0, kTileSpacing);
|
| tiles_layout_manager->set_main_axis_alignment(
|
| @@ -129,16 +133,26 @@ TileItemView* StartPageView::StartPageTilesContainer::GetTileItemView(
|
| }
|
|
|
| int StartPageView::StartPageTilesContainer::Update() {
|
| + // 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();
|
| + }
|
| +
|
| std::vector<SearchResult*> display_results =
|
| AppListModel::FilterSearchResultsByDisplayType(
|
| results(), SearchResult::DISPLAY_RECOMMENDATION, kNumStartPageTiles);
|
|
|
| // Update the tile item results.
|
| for (size_t i = 0; i < search_result_tile_views_.size(); ++i) {
|
| - SearchResult* item = nullptr;
|
| + SearchResult* item = NULL;
|
| if (i < display_results.size())
|
| item = display_results[i];
|
| search_result_tile_views_[i]->SetSearchResult(item);
|
| + search_result_tile_views_[i]->SetEnabled(true);
|
| }
|
|
|
| Layout();
|
| @@ -170,9 +184,11 @@ StartPageView::StartPageView(AppListMainView* app_list_main_view,
|
| search_box_spacer_view_(new SearchBoxSpacerView(
|
| app_list_main_view->search_box_view()->GetPreferredSize())),
|
| instant_container_(new views::View),
|
| - tiles_container_(new StartPageTilesContainer(new AllAppsTileItemView(
|
| - app_list_main_view_->contents_view(),
|
| - view_delegate_->GetModel()->top_level_item_list()))) {
|
| + tiles_container_(new StartPageTilesContainer(
|
| + app_list_main_view->contents_view(),
|
| + new AllAppsTileItemView(
|
| + app_list_main_view_->contents_view(),
|
| + view_delegate_->GetModel()->top_level_item_list()))) {
|
| // The view containing the start page WebContents and SearchBoxSpacerView.
|
| InitInstantContainer();
|
| AddChildView(instant_container_);
|
|
|