Index: ash/wm/panels/panel_layout_manager.cc |
diff --git a/ash/wm/panels/panel_layout_manager.cc b/ash/wm/panels/panel_layout_manager.cc |
index 65f15e69ab1c4bf6daa62374e0cd1eda536f2a24..ea6f9e9cbc3a648d52e6fac349bdebca7d414717 100644 |
--- a/ash/wm/panels/panel_layout_manager.cc |
+++ b/ash/wm/panels/panel_layout_manager.cc |
@@ -330,6 +330,15 @@ void PanelLayoutManager::ToggleMinimize(aura::Window* panel) { |
} |
} |
+views::Widget* PanelLayoutManager::GetCalloutWidgetForPanel( |
+ aura::Window* panel) { |
+ DCHECK(panel->parent() == panel_container_); |
+ PanelList::iterator found = |
+ std::find(panel_windows_.begin(), panel_windows_.end(), panel); |
+ DCHECK(found != panel_windows_.end()); |
+ return found->callout_widget; |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// PanelLayoutManager, aura::LayoutManager implementation: |
void PanelLayoutManager::OnWindowResized() { |
@@ -832,7 +841,8 @@ void PanelLayoutManager::UpdateCallouts() { |
ui::Layer* layer = callout_widget->GetNativeWindow()->layer(); |
// If the panel is not over the callout position or has just become visible |
// then fade in the callout. |
- if (distance_until_over_panel > 0 || layer->GetTargetOpacity() < 1) { |
+ if ((distance_until_over_panel > 0 || layer->GetTargetOpacity() < 1) && |
+ panel->layer()->GetTargetTransform().IsIdentity()) { |
if (distance_until_over_panel > 0 && |
slide_distance >= distance_until_over_panel) { |
layer->SetOpacity(0); |