| Index: ui/message_center/views/message_center_view.cc
|
| diff --git a/ui/message_center/views/message_center_view.cc b/ui/message_center/views/message_center_view.cc
|
| index 3b0062e60d6063df5159b243e8f303d31b698eb5..375d42be82d5bd5532a66982c25208c3d9056774 100644
|
| --- a/ui/message_center/views/message_center_view.cc
|
| +++ b/ui/message_center/views/message_center_view.cc
|
| @@ -77,7 +77,8 @@ MessageCenterView::MessageCenterView(MessageCenter* message_center,
|
| is_locked_(message_center_->IsLockedState()),
|
| mode_((!initially_settings_visible || is_locked_) ? Mode::BUTTONS_ONLY
|
| : Mode::SETTINGS),
|
| - context_menu_controller_(new MessageViewContextMenuController(this)) {
|
| + context_menu_controller_(new MessageViewContextMenuController(this)),
|
| + focus_manager_(nullptr) {
|
| message_center_->AddObserver(this);
|
| set_notify_enter_exit_on_child(true);
|
| set_background(views::Background::CreateSolidBackground(
|
| @@ -133,6 +134,15 @@ MessageCenterView::~MessageCenterView() {
|
|
|
| if (!is_closing_)
|
| message_center_->RemoveObserver(this);
|
| +
|
| + if (focus_manager_)
|
| + focus_manager_->RemoveFocusChangeListener(this);
|
| +}
|
| +
|
| +void MessageCenterView::Init() {
|
| + focus_manager_ = GetFocusManager();
|
| + if (focus_manager_)
|
| + focus_manager_->AddFocusChangeListener(this);
|
| }
|
|
|
| void MessageCenterView::SetNotifications(
|
| @@ -204,6 +214,18 @@ void MessageCenterView::SetIsClosing(bool is_closing) {
|
| message_center_->AddObserver(this);
|
| }
|
|
|
| +void MessageCenterView::OnDidChangeFocus(views::View* before,
|
| + views::View* now) {
|
| + if (message_list_view_ && (message_list_view_->Contains(before) ||
|
| + message_list_view_->Contains(now))) {
|
| + // Focus state of a children of message view center is changed.
|
| + for (auto pair : notification_views_) {
|
| + if (pair.second->Contains(before) || pair.second->Contains(now))
|
| + pair.second->UpdateControlButtonsVisibility();
|
| + }
|
| + }
|
| +}
|
| +
|
| void MessageCenterView::Layout() {
|
| if (is_closing_)
|
| return;
|
|
|