| Index: ash/mus/shelf_delegate_mus.cc
|
| diff --git a/ash/mus/shelf_delegate_mus.cc b/ash/mus/shelf_delegate_mus.cc
|
| index 2b11d7cbd04f62e7fef06fe6b0eef135b7ebeb01..47c4adc0de1a151e860091c4dd6776df547025ab 100644
|
| --- a/ash/mus/shelf_delegate_mus.cc
|
| +++ b/ash/mus/shelf_delegate_mus.cc
|
| @@ -193,11 +193,16 @@ ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model)
|
|
|
| ShelfDelegateMus::~ShelfDelegateMus() {}
|
|
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +// ShelfDelegate:
|
| +
|
| void ShelfDelegateMus::OnShelfCreated(Shelf* shelf) {
|
| SetShelfPreferredSizes(shelf);
|
| + shelf->shelf_layout_manager()->AddObserver(this);
|
| }
|
|
|
| void ShelfDelegateMus::OnShelfDestroyed(Shelf* shelf) {
|
| + shelf->shelf_layout_manager()->RemoveObserver(this);
|
| NOTIMPLEMENTED();
|
| }
|
|
|
| @@ -254,6 +259,26 @@ void ShelfDelegateMus::UnpinAppWithID(const std::string& app_id) {
|
| NOTIMPLEMENTED();
|
| }
|
|
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +// ShelfLayoutManagerObserver:
|
| +
|
| +void ShelfDelegateMus::DidChangeVisibilityState(
|
| + ShelfLayoutManager* layout_manager,
|
| + ShelfVisibilityState new_state) {
|
| + // Push the new preferred size to the window manager. For example, when the
|
| + // shelf is auto-hidden it becomes a very short "light bar".
|
| + SetShelfPreferredSizes(layout_manager->shelf_widget()->shelf());
|
| +}
|
| +
|
| +void ShelfDelegateMus::OnAutoHideStateChanged(
|
| + ShelfLayoutManager* layout_manager,
|
| + ShelfAutoHideState new_state) {
|
| + SetShelfPreferredSizes(layout_manager->shelf_widget()->shelf());
|
| +}
|
| +
|
| +///////////////////////////////////////////////////////////////////////////////
|
| +// mash::shelf::mojom::ShelfController:
|
| +
|
| void ShelfDelegateMus::AddObserver(
|
| mash::shelf::mojom::ShelfObserverAssociatedPtrInfo observer) {
|
| mash::shelf::mojom::ShelfObserverAssociatedPtr observer_ptr;
|
| @@ -451,7 +476,7 @@ 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();
|
| + gfx::Size size = layout_manager->GetPreferredSize();
|
| window->SetSharedProperty<gfx::Size>(
|
| mus::mojom::WindowManager::kPreferredSize_Property, size);
|
|
|
|
|