| Index: chrome/browser/ui/ash/launcher/settings_window_observer.cc
|
| diff --git a/chrome/browser/ui/ash/launcher/settings_window_observer.cc b/chrome/browser/ui/ash/launcher/settings_window_observer.cc
|
| index cd900168d8fb1acd285a8881ac812156245472ef..8813c4083bd3f54ece3bda96c55d11a5311dcbfe 100644
|
| --- a/chrome/browser/ui/ash/launcher/settings_window_observer.cc
|
| +++ b/chrome/browser/ui/ash/launcher/settings_window_observer.cc
|
| @@ -12,8 +12,12 @@
|
| #include "chrome/browser/ui/browser_window.h"
|
| #include "chrome/browser/ui/settings_window_manager.h"
|
| #include "components/strings/grit/components_strings.h"
|
| +#include "services/ui/public/cpp/property_type_converters.h"
|
| +#include "services/ui/public/cpp/window.h"
|
| +#include "services/ui/public/cpp/window_property.h"
|
| #include "services/ui/public/interfaces/window_manager.mojom.h"
|
| #include "ui/aura/client/aura_constants.h"
|
| +#include "ui/aura/mus/mus_util.h"
|
| #include "ui/aura/window.h"
|
| #include "ui/aura/window_property.h"
|
| #include "ui/base/l10n/l10n_util.h"
|
| @@ -38,10 +42,37 @@
|
| DISALLOW_COPY_AND_ASSIGN(AuraWindowSettingsTitleTracker);
|
| };
|
|
|
| +// This class is only used in mash (mus+ash) to rename the Settings window.
|
| +class UiWindowSettingsTitleTracker : public ui::WindowTracker {
|
| + public:
|
| + UiWindowSettingsTitleTracker() {}
|
| + ~UiWindowSettingsTitleTracker() override {}
|
| +
|
| + // ui::WindowTracker:
|
| + void OnWindowSharedPropertyChanged(
|
| + ui::Window* window,
|
| + const std::string& name,
|
| + const std::vector<uint8_t>* old_data,
|
| + const std::vector<uint8_t>* new_data) override {
|
| + if (name == ui::mojom::WindowManager::kWindowTitle_Property) {
|
| + // Name the window "Settings" instead of "Google Chrome - Settings".
|
| + window->SetSharedProperty<base::string16>(
|
| + ui::mojom::WindowManager::kWindowTitle_Property,
|
| + l10n_util::GetStringUTF16(IDS_SETTINGS_TITLE));
|
| + }
|
| + }
|
| +
|
| + private:
|
| + DISALLOW_COPY_AND_ASSIGN(UiWindowSettingsTitleTracker);
|
| +};
|
| +
|
| } // namespace
|
|
|
| SettingsWindowObserver::SettingsWindowObserver() {
|
| - aura_window_tracker_ = base::MakeUnique<AuraWindowSettingsTitleTracker>();
|
| + if (chrome::IsRunningInMash())
|
| + ui_window_tracker_.reset(new UiWindowSettingsTitleTracker);
|
| + else
|
| + aura_window_tracker_.reset(new AuraWindowSettingsTitleTracker);
|
| chrome::SettingsWindowManager::GetInstance()->AddObserver(this);
|
| }
|
|
|
| @@ -57,5 +88,9 @@
|
| gfx::ImageSkia* icon = rb.GetImageSkiaNamed(IDR_ASH_SHELF_ICON_SETTINGS);
|
| // The new gfx::ImageSkia instance is owned by the window itself.
|
| window->SetProperty(aura::client::kWindowIconKey, new gfx::ImageSkia(*icon));
|
| - aura_window_tracker_->Add(window);
|
| +
|
| + if (chrome::IsRunningInMash())
|
| + ui_window_tracker_->Add(aura::GetMusWindow(window));
|
| + else
|
| + aura_window_tracker_->Add(window);
|
| }
|
|
|