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

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: 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 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

Powered by Google App Engine
This is Rietveld 408576698