Chromium Code Reviews| Index: ash/system/tray/system_tray_bubble.cc |
| diff --git a/ash/system/tray/system_tray_bubble.cc b/ash/system/tray/system_tray_bubble.cc |
| index 8274d79c6824eaa90e43aae579163d3b999bfff9..f806947615bbbfcbce9bb3cc31678ab078736448 100644 |
| --- a/ash/system/tray/system_tray_bubble.cc |
| +++ b/ash/system/tray/system_tray_bubble.cc |
| @@ -154,6 +154,7 @@ void SystemTrayBubble::UpdateView( |
| const int kSwipeDelayMS = 150; |
| base::TimeDelta swipe_duration = |
| base::TimeDelta::FromMilliseconds(kSwipeDelayMS); |
| + bool delete_layer = true; |
| ui::Layer* layer = bubble_view_->RecreateLayer(); |
|
sadrul
2012/12/19 23:50:33
Does it make sense to make |layer| a scoped_ptr, a
oshima
2012/12/20 00:05:19
As I mentioned in the bug description, layer is be
sadrul
2012/12/20 00:08:01
release() wouldn't destroy the layer, right? So it
|
| DCHECK(layer); |
| layer->SuppressPaint(); |
| @@ -165,6 +166,7 @@ void SystemTrayBubble::UpdateView( |
| // animation. |
| layer->parent()->StackAbove(layer, bubble_view_->layer()); |
| ui::ScopedLayerAnimationSettings settings(layer->GetAnimator()); |
| + delete_layer = false; |
| settings.AddObserver(new AnimationObserverDeleteLayer(layer)); |
| settings.SetTransitionDuration(swipe_duration); |
| settings.SetTweenType(ui::Tween::EASE_OUT); |
| @@ -207,6 +209,8 @@ void SystemTrayBubble::UpdateView( |
| // Close bubble view if we failed to create the item view. |
| if (!bubble_view_->has_children()) { |
| + if (delete_layer) |
| + delete layer; |
| Close(); |
| return; |
| } |
| @@ -227,12 +231,15 @@ void SystemTrayBubble::UpdateView( |
| new_layer->SetTransform(transform); |
| { |
| ui::ScopedLayerAnimationSettings settings(new_layer->GetAnimator()); |
| + delete_layer = false; |
| settings.AddObserver(new AnimationObserverDeleteLayer(layer)); |
| settings.SetTransitionDuration(swipe_duration); |
| settings.SetTweenType(ui::Tween::EASE_OUT); |
| new_layer->SetTransform(gfx::Transform()); |
| } |
| } |
| + if (delete_layer) |
| + delete layer; |
| } |
| void SystemTrayBubble::InitView(views::View* anchor, |