Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(613)

Unified Diff: athena/home/home_card_impl.cc

Issue 693103002: Fixes the mouse click of the search box in the home card. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: athena/home/home_card_impl.cc
diff --git a/athena/home/home_card_impl.cc b/athena/home/home_card_impl.cc
index c1efcb75c99f9c8defc31ae0d25c1a32d74d7162..f6a64f382f11bf6a22904519f39ab8cbf5403f41 100644
--- a/athena/home/home_card_impl.cc
+++ b/athena/home/home_card_impl.cc
@@ -19,6 +19,7 @@
#include "ui/app_list/views/contents_view.h"
#include "ui/aura/layout_manager.h"
#include "ui/aura/window.h"
+#include "ui/compositor/closure_animation_observer.h"
#include "ui/compositor/layer.h"
#include "ui/compositor/scoped_layer_animation_settings.h"
#include "ui/gfx/animation/tween.h"
@@ -131,7 +132,8 @@ class HomeCardView : public views::WidgetDelegateView,
main_view_(new AthenaStartPageView(view_delegate)),
minimized_background_(new views::View()),
drag_indicator_(new views::View()),
- gesture_delegate_(gesture_delegate) {
+ gesture_delegate_(gesture_delegate),
+ weak_factory_(this) {
background_->set_background(
views::Background::CreateVerticalGradientBackground(SK_ColorLTGRAY,
SK_ColorWHITE));
@@ -181,6 +183,7 @@ class HomeCardView : public views::WidgetDelegateView,
}
background_->layer()->SetOpacity(background_opacity);
minimized_background_->layer()->SetOpacity(1.0f - background_opacity);
+ UpdateMinimizedBackgroundVisibility();
int background_height = kHomeCardHeight;
if (from_state == HomeCard::VISIBLE_CENTERED ||
@@ -207,11 +210,18 @@ class HomeCardView : public views::WidgetDelegateView,
gfx::Tween::Type tween_type) {
float minimized_opacity =
(state == HomeCard::VISIBLE_MINIMIZED) ? 1.0f : 0.0f;
+ // |minimized_background_| needs to be visible before scheduling animation.
+ if (state == HomeCard::VISIBLE_MINIMIZED)
+ minimized_background_->SetVisible(true);
+
if (minimized_opacity !=
minimized_background_->layer()->GetTargetOpacity()) {
ui::ScopedLayerAnimationSettings settings(
minimized_background_->layer()->GetAnimator());
settings.SetTweenType(gfx::Tween::EASE_IN);
+ settings.AddObserver(new ui::ClosureAnimationObserver(
+ base::Bind(&HomeCardView::UpdateMinimizedBackgroundVisibility,
+ weak_factory_.GetWeakPtr())));
minimized_background_->layer()->SetOpacity(minimized_opacity);
}
@@ -293,6 +303,11 @@ class HomeCardView : public views::WidgetDelegateView,
}
private:
+ void UpdateMinimizedBackgroundVisibility() {
+ minimized_background_->SetVisible(
+ minimized_background_->layer()->GetTargetOpacity() != 0.0f);
+ }
+
// views::WidgetDelegate:
views::View* GetContentsView() override { return this; }
@@ -310,6 +325,8 @@ class HomeCardView : public views::WidgetDelegateView,
scoped_ptr<HomeCardGestureManager> gesture_manager_;
HomeCardGestureManager::Delegate* gesture_delegate_;
+ base::WeakPtrFactory<HomeCardView> weak_factory_;
+
DISALLOW_COPY_AND_ASSIGN(HomeCardView);
};
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698