diff options
Diffstat (limited to 'ash/system/user/tray_user.cc')
-rw-r--r-- | ash/system/user/tray_user.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/ash/system/user/tray_user.cc b/ash/system/user/tray_user.cc index e3c0697..965a248 100644 --- a/ash/system/user/tray_user.cc +++ b/ash/system/user/tray_user.cc @@ -273,6 +273,9 @@ class UserView : public views::View, // The view of the user card. views::View* user_card_view_; + // This is the owner system tray item of this view. + SystemTrayItem* owner_; + // True if |user_card_view_| is a |UserView| - otherwise it is only a // |views::View|. bool is_user_card_; @@ -595,6 +598,7 @@ UserView::UserView(SystemTrayItem* owner, MultiProfileIndex index) : multiprofile_index_(index), user_card_view_(NULL), + owner_(owner), is_user_card_(false), logout_button_(NULL), add_user_visible_but_disabled_(false) { @@ -710,6 +714,9 @@ void UserView::ButtonPressed(views::Button* sender, const ui::Event& event) { ash::SessionStateDelegate* delegate = ash::Shell::GetInstance()->session_state_delegate(); delegate->SwitchActiveUser(delegate->GetUserEmail(multiprofile_index_)); + // Since the user list is about to change the system menu should get + // closed. + owner_->system_tray()->CloseSystemBubble(); } } else if (add_menu_option_.get() && sender == add_menu_option_->GetContentsView()) { |