Chromium Code Reviews| Index: ui/app_list/views/app_list_main_view.cc |
| diff --git a/ui/app_list/views/app_list_main_view.cc b/ui/app_list/views/app_list_main_view.cc |
| index 312eacca3cf62eb39fdb3678708814e7b96dcf9e..ba68045a8345847c39ac0271533dbd1a38c97201 100644 |
| --- a/ui/app_list/views/app_list_main_view.cc |
| +++ b/ui/app_list/views/app_list_main_view.cc |
| @@ -136,6 +136,8 @@ void AppListMainView::Init(gfx::NativeView parent, |
| // Starts icon loading early. |
| PreloadIcons(parent); |
| + |
| + OnSearchEngineIsGoogleChanged(model_->search_engine_is_google()); |
| } |
| void AppListMainView::AddContentsViews() { |
| @@ -308,10 +310,33 @@ void AppListMainView::InitWidgets() { |
| custom_page_clickzone_->SetContentsView(new CustomPageButton(this)); |
| // The widget is shown by default. If the ContentsView determines that we do |
| // not need a clickzone upon startup, hide it. |
| - if (!contents_view_->ShouldShowCustomPageClickzone()) |
| + if (!ShouldShowCustomLauncherPage() || |
| + !contents_view_->IsStateActive(AppListModel::STATE_START)) |
| custom_page_clickzone_->Hide(); |
| } |
| +bool AppListMainView::ShouldShowCustomLauncherPage() const { |
| + return contents_view_->custom_page_view() && |
| + model_->custom_launcher_page_enabled() && |
| + model_->search_engine_is_google(); |
|
Matt Giuca
2015/02/17 00:23:34
You're adding this behaviour here, right? (Not jus
calamity
2015/02/17 06:16:37
Done.
|
| +} |
| + |
| +void AppListMainView::UpdateCustomLauncherPageVisibility() { |
| + if (ShouldShowCustomLauncherPage()) { |
| + // Make the custom page view visible again. |
| + contents_view_->custom_page_view()->SetVisible(true); |
| + } else if (contents_view_->IsStateActive( |
| + AppListModel::STATE_CUSTOM_LAUNCHER_PAGE)) { |
| + // Animate to the start page if currently on the custom page view. The view |
| + // will hide on animation completion. |
| + contents_view_->SetActivePage( |
| + contents_view_->GetPageIndexForState(AppListModel::STATE_START)); |
| + } else { |
| + // Hide the view immediately otherwise. |
| + contents_view_->custom_page_view()->SetVisible(false); |
| + } |
| +} |
| + |
| void AppListMainView::OnCustomLauncherPageEnabledStateChanged(bool enabled) { |
| if (enabled) { |
| // Make the custom page view visible again. |
| @@ -330,6 +355,15 @@ void AppListMainView::OnCustomLauncherPageEnabledStateChanged(bool enabled) { |
| contents_view_->start_page_view()->UpdateCustomPageClickzoneVisibility(); |
| } |
| +void AppListMainView::OnSearchEngineIsGoogleChanged(bool is_google) { |
| + if (contents_view_->custom_page_view()) { |
| + contents_view_->custom_page_view()->SetVisible(is_google); |
| + contents_view_->start_page_view()->instant_container()->SetVisible( |
| + is_google); |
| + contents_view_->start_page_view()->UpdateCustomPageClickzoneVisibility(); |
| + } |
| +} |
| + |
| void AppListMainView::ActivateApp(AppListItem* item, int event_flags) { |
| // TODO(jennyz): Activate the folder via AppListModel notification. |
| if (item->GetItemType() == AppListFolderItem::kItemType) |