| Index: ash/shelf/shelf_view.cc
|
| diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc
|
| index 0fd7a01774cdd96990fabb58ba4de2be130a7933..42545c714b8dacc1fcda101f61be301d24ad2b5f 100644
|
| --- a/ash/shelf/shelf_view.cc
|
| +++ b/ash/shelf/shelf_view.cc
|
| @@ -462,7 +462,9 @@ gfx::Rect ShelfView::GetIdealBoundsOfItemIcon(ShelfID id) {
|
| index = last_visible_index_ + 1;
|
| const gfx::Rect& ideal_bounds(view_model_->ideal_bounds(index));
|
| DCHECK_NE(TYPE_APP_LIST, model_->items()[index].type);
|
| - ShelfButton* button = static_cast<ShelfButton*>(view_model_->view_at(index));
|
| + views::View* view = view_model_->view_at(index);
|
| + CHECK_EQ(ShelfButton::kViewClassName, view->GetClassName());
|
| + ShelfButton* button = static_cast<ShelfButton*>(view);
|
| gfx::Rect icon_bounds = button->GetIconBounds();
|
| return gfx::Rect(GetMirroredXWithWidthInView(
|
| ideal_bounds.x() + icon_bounds.x(), icon_bounds.width()),
|
| @@ -1068,9 +1070,8 @@ bool ShelfView::HandleRipOffDrag(const ui::LocatedEvent& event) {
|
| int delta = CalculateShelfDistance(screen_location);
|
| if (delta > kRipOffDistance) {
|
| // Create a proxy view item which can be moved anywhere.
|
| - ShelfButton* button = static_cast<ShelfButton*>(drag_view_);
|
| CreateDragIconProxy(event.root_location(),
|
| - button->GetImage(),
|
| + drag_view_->GetImage(),
|
| drag_view_,
|
| gfx::Vector2d(0, 0),
|
| kDragAndDropProxyScale);
|
| @@ -1152,8 +1153,7 @@ void ShelfView::FinalizeRipOffDrag(bool cancel) {
|
| // animation end the flag gets cleared if |snap_back_from_rip_off_view_|
|
| // is set.
|
| snap_back_from_rip_off_view_ = drag_view_;
|
| - ShelfButton* button = static_cast<ShelfButton*>(drag_view_);
|
| - button->AddState(ShelfButton::STATE_HIDDEN);
|
| + drag_view_->AddState(ShelfButton::STATE_HIDDEN);
|
| // When a canceling drag model is happening, the view model is diverged
|
| // from the menu model and movements / animations should not be done.
|
| model_->Move(current_index, start_drag_index_);
|
| @@ -1528,6 +1528,7 @@ void ShelfView::ShelfItemChanged(int model_index, const ShelfItem& old_item) {
|
| case TYPE_PLATFORM_APP:
|
| case TYPE_DIALOG:
|
| case TYPE_APP_PANEL: {
|
| + CHECK_EQ(ShelfButton::kViewClassName, view->GetClassName());
|
| ShelfButton* button = static_cast<ShelfButton*>(view);
|
| ReflectItemStatus(item, button);
|
| // The browser shortcut is currently not a "real" item and as such the
|
| @@ -1572,7 +1573,8 @@ void ShelfView::PointerPressedOnButton(views::View* view,
|
| if (view_model_->view_size() <= 1 || !item_delegate->IsDraggable())
|
| return; // View is being deleted or not draggable, ignore request.
|
|
|
| - drag_view_ = view;
|
| + CHECK_EQ(ShelfButton::kViewClassName, view->GetClassName());
|
| + drag_view_ = static_cast<ShelfButton*>(view);
|
| drag_origin_ = gfx::Point(event.x(), event.y());
|
| UMA_HISTOGRAM_ENUMERATION("Ash.ShelfAlignmentUsage",
|
| layout_manager_->SelectValueForShelfAlignment(
|
| @@ -1866,6 +1868,7 @@ void ShelfView::OnBoundsAnimatorDone(views::BoundsAnimator* animator) {
|
| for (int index = 0; index < view_model_->view_size(); index++) {
|
| views::View* view = view_model_->view_at(index);
|
| if (view == snap_back_from_rip_off_view_) {
|
| + CHECK_EQ(ShelfButton::kViewClassName, view->GetClassName());
|
| ShelfButton* button = static_cast<ShelfButton*>(view);
|
| button->ClearState(ShelfButton::STATE_HIDDEN);
|
| break;
|
|
|