| 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 b2b4094e96406722e90cf76ef0460f1205e6dafd..e0b56dcd31924b8cff52738f6e1a2a1cc19dd7de 100644
|
| --- a/ash/wm/panels/panel_layout_manager.cc
|
| +++ b/ash/wm/panels/panel_layout_manager.cc
|
| @@ -33,6 +33,7 @@
|
| #include "ui/gfx/geometry/vector2d.h"
|
| #include "ui/views/background.h"
|
| #include "ui/views/widget/widget.h"
|
| +#include "ui/wm/core/window_util.h"
|
| #include "ui/wm/public/activation_client.h"
|
|
|
| using aura::Window;
|
| @@ -488,11 +489,9 @@ void PanelLayoutManager::OnPostWindowStateTypeChange(
|
| if (restore_windows_on_shelf_visible_) {
|
| if (window_state->IsMinimized()) {
|
| MinimizePanel(window_state->window());
|
| - restore_windows_on_shelf_visible_->Remove(
|
| - window_state->window()->aura_window());
|
| + restore_windows_on_shelf_visible_->Remove(window_state->window());
|
| } else {
|
| - restore_windows_on_shelf_visible_->Add(
|
| - window_state->window()->aura_window());
|
| + restore_windows_on_shelf_visible_->Add(window_state->window());
|
| }
|
| return;
|
| }
|
| @@ -540,7 +539,7 @@ void PanelLayoutManager::WillChangeVisibilityState(
|
| std::unique_ptr<aura::WindowTracker> restore_windows(
|
| std::move(restore_windows_on_shelf_visible_));
|
| for (aura::Window* window : restore_windows->windows())
|
| - RestorePanel(WmWindow::Get(window));
|
| + RestorePanel(window);
|
| }
|
| return;
|
| }
|
| @@ -573,33 +572,33 @@ void PanelLayoutManager::OnShelfIconPositionsChanged() {
|
| ////////////////////////////////////////////////////////////////////////////////
|
| // PanelLayoutManager private implementation:
|
|
|
| -void PanelLayoutManager::MinimizePanel(WmWindow* panel) {
|
| +void PanelLayoutManager::MinimizePanel(aura::Window* panel) {
|
| // Clusterfuzz can trigger panel accelerators before the shelf is created.
|
| // TODO(jamescook): Revert this after http://crbug.com/648964 is fixed.
|
| if (!shelf_)
|
| return;
|
|
|
| - panel->SetVisibilityAnimationType(
|
| - wm::WINDOW_VISIBILITY_ANIMATION_TYPE_MINIMIZE);
|
| - ui::Layer* layer = panel->GetLayer();
|
| + ::wm::SetWindowVisibilityAnimationType(
|
| + panel, wm::WINDOW_VISIBILITY_ANIMATION_TYPE_MINIMIZE);
|
| + ui::Layer* layer = panel->layer();
|
| ui::ScopedLayerAnimationSettings panel_slide_settings(layer->GetAnimator());
|
| panel_slide_settings.SetPreemptionStrategy(
|
| ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
|
| panel_slide_settings.SetTransitionDuration(
|
| base::TimeDelta::FromMilliseconds(kPanelSlideDurationMilliseconds));
|
| - gfx::Rect bounds(panel->GetBounds());
|
| + gfx::Rect bounds(panel->bounds());
|
| bounds.Offset(GetSlideInAnimationOffset(shelf_->GetAlignment()));
|
| - panel->SetBoundsDirect(bounds);
|
| + SetChildBoundsDirect(panel, bounds);
|
| panel->Hide();
|
| layer->SetOpacity(0);
|
| - if (panel->IsActive())
|
| - panel->Deactivate();
|
| + if (::wm::IsActiveWindow(panel))
|
| + ::wm::DeactivateWindow(panel);
|
| Relayout();
|
| }
|
|
|
| -void PanelLayoutManager::RestorePanel(WmWindow* panel) {
|
| - PanelList::iterator found =
|
| - std::find(panel_windows_.begin(), panel_windows_.end(), panel);
|
| +void PanelLayoutManager::RestorePanel(aura::Window* panel) {
|
| + PanelList::iterator found = std::find(
|
| + panel_windows_.begin(), panel_windows_.end(), WmWindow::Get(panel));
|
| DCHECK(found != panel_windows_.end());
|
| found->slide_in = true;
|
| Relayout();
|
| @@ -736,7 +735,8 @@ void PanelLayoutManager::Relayout() {
|
| layer->SetOpacity(0);
|
| gfx::Rect initial_bounds(bounds);
|
| initial_bounds.Offset(GetSlideInAnimationOffset(shelf_->alignment()));
|
| - visible_panels[i].window->SetBoundsDirect(initial_bounds);
|
| + SetChildBoundsDirect(visible_panels[i].window->aura_window(),
|
| + initial_bounds);
|
| // Set on shelf so that the panel animates into its target position.
|
| on_shelf = true;
|
| }
|
| @@ -748,7 +748,7 @@ void PanelLayoutManager::Relayout() {
|
| ui::LayerAnimator::IMMEDIATELY_ANIMATE_TO_NEW_TARGET);
|
| panel_slide_settings.SetTransitionDuration(
|
| base::TimeDelta::FromMilliseconds(kPanelSlideDurationMilliseconds));
|
| - visible_panels[i].window->SetBoundsDirect(bounds);
|
| + SetChildBoundsDirect(visible_panels[i].window->aura_window(), bounds);
|
| if (slide_in) {
|
| layer->SetOpacity(1);
|
| visible_panels[i].window->Show();
|
| @@ -756,7 +756,7 @@ void PanelLayoutManager::Relayout() {
|
| } else {
|
| // If the shelf moved don't animate, move immediately to the new
|
| // target location.
|
| - visible_panels[i].window->SetBoundsDirect(bounds);
|
| + SetChildBoundsDirect(visible_panels[i].window->aura_window(), bounds);
|
| }
|
| }
|
|
|
| @@ -871,7 +871,7 @@ void PanelLayoutManager::UpdateCallouts() {
|
| callout_bounds = callout_widget_window->GetParent()->ConvertRectFromScreen(
|
| callout_bounds);
|
|
|
| - callout_widget_window->SetBoundsDirect(callout_bounds);
|
| + SetChildBoundsDirect(callout_widget_window->aura_window(), callout_bounds);
|
| DCHECK_EQ(panel_container_, callout_widget_window->GetParent());
|
| DCHECK_EQ(panel_container_, panel->GetParent());
|
| panel_container_->StackChildAbove(callout_widget_window, panel);
|
| @@ -928,13 +928,15 @@ void PanelLayoutManager::OnKeyboardBoundsChanging(
|
| // Ensure panels are not pushed above the parent boundaries, shrink any
|
| // panels that violate this constraint.
|
| if (delta > 0) {
|
| - panel->SetBoundsDirect(
|
| + SetChildBoundsDirect(
|
| + panel->aura_window(),
|
| gfx::Rect(panel_bounds.x(), panel_bounds.y() + delta,
|
| panel_bounds.width(), panel_bounds.height() - delta));
|
| }
|
| } else if (panel_state->HasRestoreBounds()) {
|
| // Keyboard hidden, restore original bounds if they exist.
|
| - panel->SetBoundsDirect(panel_state->GetRestoreBoundsInScreen());
|
| + SetChildBoundsDirect(panel->aura_window(),
|
| + panel_state->GetRestoreBoundsInScreen());
|
| }
|
| }
|
| // This bounds change will have caused a change to the Shelf which does not
|
|
|