| Index: ash/mus/shelf_delegate_mus.cc
|
| diff --git a/ash/mus/shelf_delegate_mus.cc b/ash/mus/shelf_delegate_mus.cc
|
| index 2102ff2cc07201f4f6a4c258eb466095fd8d9a12..20fd6ce22fb89de048a673441bfc48fad9ea832e 100644
|
| --- a/ash/mus/shelf_delegate_mus.cc
|
| +++ b/ash/mus/shelf_delegate_mus.cc
|
| @@ -116,6 +116,7 @@ ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model)
|
| : model_(model), binding_(this) {
|
| mojo::Connector* connector =
|
| views::WindowManagerConnection::Get()->connector();
|
| + connector->ConnectToInterface("mojo:desktop_wm", &shelf_layout_);
|
| connector->ConnectToInterface("mojo:desktop_wm", &user_window_controller_);
|
| user_window_controller_->AddUserWindowObserver(
|
| binding_.CreateInterfacePtrAndBind());
|
| @@ -124,19 +125,7 @@ ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model)
|
| ShelfDelegateMus::~ShelfDelegateMus() {}
|
|
|
| void ShelfDelegateMus::OnShelfCreated(Shelf* shelf) {
|
| - ShelfWidget* widget = shelf->shelf_widget();
|
| - ShelfLayoutManager* layout_manager = widget->shelf_layout_manager();
|
| - mus::Window* window = aura::GetMusWindow(widget->GetNativeWindow());
|
| - gfx::Size size = layout_manager->GetIdealBounds().size();
|
| - window->SetSharedProperty<gfx::Size>(
|
| - mus::mojom::WindowManager::kPreferredSize_Property, size);
|
| -
|
| - StatusAreaWidget* status_widget = widget->status_area_widget();
|
| - mus::Window* status_window =
|
| - aura::GetMusWindow(status_widget->GetNativeWindow());
|
| - gfx::Size status_size = status_widget->GetWindowBoundsInScreen().size();
|
| - status_window->SetSharedProperty<gfx::Size>(
|
| - mus::mojom::WindowManager::kPreferredSize_Property, status_size);
|
| + SetShelfPreferredSizes(shelf);
|
| }
|
|
|
| void ShelfDelegateMus::OnShelfDestroyed(Shelf* shelf) {
|
| @@ -144,6 +133,10 @@ void ShelfDelegateMus::OnShelfDestroyed(Shelf* shelf) {
|
| }
|
|
|
| void ShelfDelegateMus::OnShelfAlignmentChanged(Shelf* shelf) {
|
| + SetShelfPreferredSizes(shelf);
|
| + shelf_layout_->SetAlignment(
|
| + static_cast<mash::wm::mojom::ShelfAlignment>(shelf->GetAlignment()));
|
| +
|
| observers_.ForAllPtrs([shelf](mash::shelf::mojom::ShelfObserver* observer) {
|
| observer->OnAlignmentChanged(
|
| static_cast<mash::shelf::mojom::Alignment>(shelf->GetAlignment()));
|
| @@ -151,6 +144,10 @@ void ShelfDelegateMus::OnShelfAlignmentChanged(Shelf* shelf) {
|
| }
|
|
|
| void ShelfDelegateMus::OnShelfAutoHideBehaviorChanged(Shelf* shelf) {
|
| + shelf_layout_->SetAutoHideBehavior(
|
| + static_cast<mash::wm::mojom::ShelfAutoHideBehavior>(
|
| + shelf->auto_hide_behavior()));
|
| +
|
| observers_.ForAllPtrs([shelf](mash::shelf::mojom::ShelfObserver* observer) {
|
| observer->OnAutoHideBehaviorChanged(
|
| static_cast<mash::shelf::mojom::AutoHideBehavior>(
|
| @@ -321,5 +318,21 @@ void ShelfDelegateMus::OnUserWindowFocusChanged(uint32_t window_id,
|
| model_->Set(index, item);
|
| }
|
|
|
| +void ShelfDelegateMus::SetShelfPreferredSizes(Shelf* shelf) {
|
| + ShelfWidget* widget = shelf->shelf_widget();
|
| + ShelfLayoutManager* layout_manager = widget->shelf_layout_manager();
|
| + mus::Window* window = aura::GetMusWindow(widget->GetNativeWindow());
|
| + gfx::Size size = layout_manager->GetIdealBounds().size();
|
| + window->SetSharedProperty<gfx::Size>(
|
| + mus::mojom::WindowManager::kPreferredSize_Property, size);
|
| +
|
| + StatusAreaWidget* status_widget = widget->status_area_widget();
|
| + mus::Window* status_window =
|
| + aura::GetMusWindow(status_widget->GetNativeWindow());
|
| + gfx::Size status_size = status_widget->GetWindowBoundsInScreen().size();
|
| + status_window->SetSharedProperty<gfx::Size>(
|
| + mus::mojom::WindowManager::kPreferredSize_Property, status_size);
|
| +}
|
| +
|
| } // namespace sysui
|
| } // namespace ash
|
|
|