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

Unified Diff: ash/launcher/launcher_view.cc

Issue 10068027: ash: Fix launcher icon overlaps with status. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 years, 8 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 | « ash/launcher/launcher_view.h ('k') | ash/launcher/launcher_view_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/launcher/launcher_view.cc
diff --git a/ash/launcher/launcher_view.cc b/ash/launcher/launcher_view.cc
index fb9f928df46eaf9228457a16cd3279e5d25ee263..3f581d41461edc420965df0ea58c07a8029b8a72 100644
--- a/ash/launcher/launcher_view.cc
+++ b/ash/launcher/launcher_view.cc
@@ -182,6 +182,7 @@ void ReflectItemStatus(const ash::LauncherItem& item,
break;
}
}
+
} // namespace
// AnimationDelegate used when inserting a new item. This steadily decreased the
@@ -226,7 +227,6 @@ class LauncherView::StartFadeAnimationDelegate :
// AnimationDelegate overrides:
virtual void AnimationEnded(const Animation* animation) OVERRIDE {
- view_->SetVisible(true);
launcher_view_->FadeIn(view_);
}
virtual void AnimationCanceled(const Animation* animation) OVERRIDE {
@@ -240,18 +240,6 @@ class LauncherView::StartFadeAnimationDelegate :
DISALLOW_COPY_AND_ASSIGN(StartFadeAnimationDelegate);
};
-int LauncherView::TestAPI::GetButtonCount() {
- return launcher_view_->view_model_->view_size();
-}
-
-LauncherButton* LauncherView::TestAPI::GetButton(int index) {
- if (index == 0)
- return NULL;
-
- return static_cast<LauncherButton*>(
- launcher_view_->view_model_->view_at(index));
-}
-
LauncherView::LauncherView(LauncherModel* model, LauncherDelegate* delegate)
: model_(model),
delegate_(delegate),
@@ -369,20 +357,14 @@ void LauncherView::CalculateIdealBounds(IdealBounds* bounds) {
last_visible_index_ = DetermineLastVisibleIndex(
available_width - kLeadingInset - bounds->overflow_bounds.width() -
kButtonSpacing - kButtonWidth);
- bool show_overflow =
- (last_visible_index_ + 1 != view_model_->view_size());
int app_list_index = view_model_->view_size() - 1;
- if (overflow_button_->visible() != show_overflow) {
- // Only change visibility of the views if the visibility of the overflow
- // button changes. Otherwise we'll effect the insertion animation, which
- // changes the visibility.
- for (int i = 0; i <= last_visible_index_; ++i)
- view_model_->view_at(i)->SetVisible(true);
- for (int i = last_visible_index_ + 1; i < view_model_->view_size(); ++i) {
- if (i != app_list_index)
- view_model_->view_at(i)->SetVisible(false);
- }
+ bool show_overflow = (last_visible_index_ + 1 < app_list_index);
+
+ for (int i = 0; i < view_model_->view_size(); ++i) {
+ view_model_->view_at(i)->SetVisible(
+ i == app_list_index || i <= last_visible_index_);
}
+
overflow_button_->SetVisible(show_overflow);
if (show_overflow) {
DCHECK_NE(0, view_model_->view_size());
@@ -688,11 +670,13 @@ void LauncherView::LauncherItemAdded(int model_index) {
views::View* view = CreateViewForItem(model_->items()[model_index]);
AddChildView(view);
- // Hide the view, it'll be made visible when the animation is done.
- view->SetVisible(false);
+ // Hide the view, it'll be made visible when the animation is done. Using
+ // opacity 0 here to avoid messing with CalculateIdealBounds which touches
+ // the view's visibility.
+ view->layer()->SetOpacity(0);
view_model_->Add(view, model_index);
- // Give the button it's ideal bounds. That way if we end up animating the
+ // Give the button its ideal bounds. That way if we end up animating the
// button before this animation completes it doesn't appear at some random
// spot (because it was in the middle of animating from 0,0 0x0 to its
// target).
@@ -700,13 +684,16 @@ void LauncherView::LauncherItemAdded(int model_index) {
CalculateIdealBounds(&ideal_bounds);
view->SetBoundsRect(view_model_->ideal_bounds(model_index));
- // The first animation moves all the views to their target position. |view| is
- // hidden, so it visually appears as though we are providing space for
+ // The first animation moves all the views to their target position. |view|
+ // is hidden, so it visually appears as though we are providing space for
// it. When done we'll fade the view in.
AnimateToIdealBounds();
- if (!overflow_button_->visible()) {
+ if (model_index <= last_visible_index_) {
bounds_animator_->SetAnimationDelegate(
view, new StartFadeAnimationDelegate(this, view), true);
+ } else {
+ // Undo the hiding if animation does not run.
+ view->layer()->SetOpacity(1.0f);
}
FOR_EACH_OBSERVER(LauncherIconObserver, observers_,
« no previous file with comments | « ash/launcher/launcher_view.h ('k') | ash/launcher/launcher_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698