Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(341)

Unified Diff: ash/mus/shelf_delegate_mus.cc

Issue 1835403002: Support additional mash shelf alignments. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Cleanup; address comments. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ash/mus/shelf_delegate_mus.cc
diff --git a/ash/mus/shelf_delegate_mus.cc b/ash/mus/shelf_delegate_mus.cc
index d023996170881886f9167c4adfee52803dce19c8..7f36abfbe5c3cc13bf46b3e4cf31ddd5dabe2351 100644
--- a/ash/mus/shelf_delegate_mus.cc
+++ b/ash/mus/shelf_delegate_mus.cc
@@ -105,6 +105,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());
@@ -113,19 +114,7 @@ ShelfDelegateMus::ShelfDelegateMus(ShelfModel* model)
ShelfDelegateMus::~ShelfDelegateMus() {}
void ShelfDelegateMus::OnShelfCreated(Shelf* shelf) {
- ash::ShelfWidget* widget = shelf->shelf_widget();
- ash::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);
-
- ash::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) {
@@ -133,11 +122,15 @@ void ShelfDelegateMus::OnShelfDestroyed(Shelf* shelf) {
}
void ShelfDelegateMus::OnShelfAlignmentChanged(Shelf* shelf) {
- NOTIMPLEMENTED();
+ SetShelfPreferredSizes(shelf);
+ shelf_layout_->SetAlignment(
+ static_cast<mash::wm::mojom::ShelfAlignment>(shelf->GetAlignment()));
}
void ShelfDelegateMus::OnShelfAutoHideBehaviorChanged(Shelf* shelf) {
- NOTIMPLEMENTED();
+ shelf_layout_->SetAutoHideBehavior(
+ static_cast<mash::wm::mojom::ShelfAutoHideBehavior>(
+ shelf->auto_hide_behavior()));
}
ShelfID ShelfDelegateMus::GetShelfIDForAppID(const std::string& app_id) {
@@ -251,5 +244,21 @@ void ShelfDelegateMus::OnUserWindowFocusChanged(uint32_t window_id,
model_->Set(index, item);
}
+void ShelfDelegateMus::SetShelfPreferredSizes(Shelf* shelf) {
+ ash::ShelfWidget* widget = shelf->shelf_widget();
+ ash::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);
+
+ ash::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

Powered by Google App Engine
This is Rietveld 408576698