| Index: chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| diff --git a/chrome/browser/ui/views/profiles/profile_chooser_view.cc b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| index 5018e8e2f8c96ceb857cb6ca3029bbee1f3a8659..4e6934ba748382410fffb8ae4987eabdd48812b8 100644
|
| --- a/chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| +++ b/chrome/browser/ui/views/profiles/profile_chooser_view.cc
|
| @@ -75,7 +75,6 @@
|
| #include "ui/views/controls/button/label_button.h"
|
| #include "ui/views/controls/button/label_button_border.h"
|
| #include "ui/views/controls/button/md_text_button.h"
|
| -#include "ui/views/controls/button/menu_button.h"
|
| #include "ui/views/controls/label.h"
|
| #include "ui/views/controls/link.h"
|
| #include "ui/views/controls/separator.h"
|
| @@ -517,7 +516,7 @@ void ProfileChooserView::ShowBubble(
|
| profiles::TutorialMode tutorial_mode,
|
| const signin::ManageAccountsParams& manage_accounts_params,
|
| signin_metrics::AccessPoint access_point,
|
| - views::View* anchor_view,
|
| + views::MenuButton* calling_button,
|
| Browser* browser,
|
| bool is_source_keyboard) {
|
| if (IsShowing()) {
|
| @@ -529,7 +528,7 @@ void ProfileChooserView::ShowBubble(
|
| }
|
|
|
| profile_bubble_ =
|
| - new ProfileChooserView(anchor_view, browser, view_mode, tutorial_mode,
|
| + new ProfileChooserView(calling_button, browser, view_mode, tutorial_mode,
|
| manage_accounts_params.service_type, access_point);
|
| views::Widget* widget =
|
| views::BubbleDialogDelegateView::CreateBubble(profile_bubble_);
|
| @@ -551,13 +550,14 @@ void ProfileChooserView::Hide() {
|
| profile_bubble_->GetWidget()->Close();
|
| }
|
|
|
| -ProfileChooserView::ProfileChooserView(views::View* anchor_view,
|
| +ProfileChooserView::ProfileChooserView(views::MenuButton* calling_button,
|
| Browser* browser,
|
| profiles::BubbleViewMode view_mode,
|
| profiles::TutorialMode tutorial_mode,
|
| signin::GAIAServiceType service_type,
|
| signin_metrics::AccessPoint access_point)
|
| - : BubbleDialogDelegateView(anchor_view, views::BubbleBorder::TOP_RIGHT),
|
| + : BubbleDialogDelegateView(calling_button, views::BubbleBorder::TOP_RIGHT),
|
| + calling_button_(calling_button),
|
| browser_(browser),
|
| view_mode_(view_mode),
|
| tutorial_mode_(tutorial_mode),
|
| @@ -641,6 +641,23 @@ void ProfileChooserView::Init() {
|
| ShowViewFromMode(view_mode_);
|
| }
|
|
|
| +// static
|
| +void ProfileChooserView::MakeCallingButtonPressedIfShowing(
|
| + const ui::Event* click_event) {
|
| + if (ProfileChooserView::IsShowing()) {
|
| + profile_bubble_->MakeCallingButtonPressed(click_event);
|
| + }
|
| +}
|
| +
|
| +void ProfileChooserView::MakeCallingButtonPressed(
|
| + const ui::Event* click_event) {
|
| + // Keep the avatar button "pressed" while the profile chooser is open
|
| + if (calling_button_) {
|
| + pressed_lock_.reset(new views::MenuButton::PressedLock(
|
| + calling_button_, false, ui::LocatedEvent::FromIfValid(click_event)));
|
| + }
|
| +}
|
| +
|
| void ProfileChooserView::OnNativeThemeChanged(
|
| const ui::NativeTheme* native_theme) {
|
| views::BubbleDialogDelegateView::OnNativeThemeChanged(native_theme);
|
|
|