Index: ash/mus/bridge/wm_window_mus.cc |
diff --git a/ash/mus/bridge/wm_window_mus.cc b/ash/mus/bridge/wm_window_mus.cc |
index efb3429640890c1411e8176a1750cbcb63a3ec68..eafa01dc72bce79eb5ee5b91537809c6e5274da3 100644 |
--- a/ash/mus/bridge/wm_window_mus.cc |
+++ b/ash/mus/bridge/wm_window_mus.cc |
@@ -100,6 +100,17 @@ ui::mojom::ShowState MojomWindowShowStateFromUI(ui::WindowShowState state) { |
return ui::mojom::ShowState::DEFAULT; |
} |
+// Returns the WmWindowProperty enum value for the given ui::Window key name. |
+WmWindowProperty WmWindowPropertyFromUI(const std::string& ui_window_key) { |
+ if (ui_window_key == ui::mojom::WindowManager::kAlwaysOnTop_Property) |
+ return WmWindowProperty::ALWAYS_ON_TOP; |
+ if (ui_window_key == ui::mojom::WindowManager::kShelfIconResourceId_Property) |
+ return WmWindowProperty::SHELF_ICON_RESOURCE_ID; |
+ if (ui_window_key == ui::mojom::WindowManager::kShelfItemType_Property) |
+ return WmWindowProperty::SHELF_ITEM_TYPE; |
+ return WmWindowProperty::INVALID_PROPERTY; |
+} |
+ |
} // namespace |
WmWindowMus::WmWindowMus(ui::Window* window) |
@@ -409,7 +420,12 @@ int WmWindowMus::GetIntProperty(WmWindowProperty key) { |
} |
if (key == WmWindowProperty::SHELF_ID) { |
- NOTIMPLEMENTED(); |
+ if (window_->HasSharedProperty( |
+ ui::mojom::WindowManager::kShelfId_Property)) { |
+ return window_->GetSharedProperty<int>( |
+ ui::mojom::WindowManager::kShelfId_Property); |
+ } |
+ |
return kInvalidShelfID; |
} |
@@ -442,7 +458,8 @@ void WmWindowMus::SetIntProperty(WmWindowProperty key, int value) { |
} |
if (key == WmWindowProperty::SHELF_ID) { |
- NOTIMPLEMENTED(); |
+ window_->SetSharedProperty<int>(ui::mojom::WindowManager::kShelfId_Property, |
+ value); |
return; |
} |
@@ -934,10 +951,16 @@ void WmWindowMus::OnWindowSharedPropertyChanged( |
GetWindowState()->OnWindowShowStateChanged(); |
return; |
} |
- if (name == ui::mojom::WindowManager::kAlwaysOnTop_Property) { |
- FOR_EACH_OBSERVER( |
- WmWindowObserver, observers_, |
- OnWindowPropertyChanged(this, WmWindowProperty::ALWAYS_ON_TOP)); |
+ if (name == ui::mojom::WindowManager::kWindowTitle_Property) { |
+ FOR_EACH_OBSERVER(WmWindowObserver, observers_, OnWindowTitleChanged(this)); |
+ return; |
+ } |
+ |
+ // Notify WmWindowObserver of certain white-listed property changes. |
+ WmWindowProperty wm_property = WmWindowPropertyFromUI(name); |
+ if (wm_property != WmWindowProperty::INVALID_PROPERTY) { |
+ FOR_EACH_OBSERVER(WmWindowObserver, observers_, |
+ OnWindowPropertyChanged(this, wm_property)); |
return; |
} |