Index: chrome/browser/ui/views/frame/browser_view.cc |
diff --git a/chrome/browser/ui/views/frame/browser_view.cc b/chrome/browser/ui/views/frame/browser_view.cc |
index f91d36d5c80408db66d08044c9ddc329c0aaff44..e1f85ef7b306b1b583a98d888807ac64b1864b4a 100644 |
--- a/chrome/browser/ui/views/frame/browser_view.cc |
+++ b/chrome/browser/ui/views/frame/browser_view.cc |
@@ -2379,39 +2379,41 @@ void BrowserView::ShowAvatarBubble(WebContents* web_contents, |
void BrowserView::ShowAvatarBubbleFromAvatarButton( |
AvatarBubbleMode mode, |
signin::GAIAServiceType service_type) { |
+ views::BubbleBorder::Arrow arrow = views::BubbleBorder::TOP_RIGHT; |
+ views::BubbleBorder::BubbleAlignment alignment = |
+ views::BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR; |
+ views::View* anchor_view = frame_->GetAvatarMenuButton(); |
+ if (!anchor_view) |
+ anchor_view = toolbar_->app_menu(); |
+ else if (!frame_->GetAvatarMenuButton()->button_on_right()) |
+ arrow = views::BubbleBorder::TOP_LEFT; |
+ |
if (switches::IsNewAvatarMenu()) { |
NewAvatarButton* button = frame_->GetNewAvatarMenuButton(); |
if (button) { |
- gfx::Point origin; |
- views::View::ConvertPointToScreen(button, &origin); |
- gfx::Rect bounds(origin, size()); |
- |
- profiles::BubbleViewMode view_mode; |
- switch (mode) { |
- case AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT: |
- view_mode = profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT; |
- break; |
- case AVATAR_BUBBLE_MODE_SIGNIN: |
- view_mode = profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN; |
- break; |
- case AVATAR_BUBBLE_MODE_REAUTH: |
- view_mode = profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH; |
- break; |
- default: |
- view_mode = profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER; |
- break; |
- } |
- ProfileChooserView::ShowBubble( |
- view_mode, service_type, button, views::BubbleBorder::TOP_RIGHT, |
- views::BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE, bounds, browser()); |
+ anchor_view = button; |
+ arrow = views::BubbleBorder::TOP_RIGHT; |
+ alignment = views::BubbleBorder::ALIGN_EDGE_TO_ANCHOR_EDGE; |
+ } |
+ |
+ profiles::BubbleViewMode view_mode; |
+ switch (mode) { |
+ case AVATAR_BUBBLE_MODE_ACCOUNT_MANAGEMENT: |
+ view_mode = profiles::BUBBLE_VIEW_MODE_ACCOUNT_MANAGEMENT; |
+ break; |
+ case AVATAR_BUBBLE_MODE_SIGNIN: |
+ view_mode = profiles::BUBBLE_VIEW_MODE_GAIA_SIGNIN; |
+ break; |
+ case AVATAR_BUBBLE_MODE_REAUTH: |
+ view_mode = profiles::BUBBLE_VIEW_MODE_GAIA_REAUTH; |
+ break; |
+ default: |
+ view_mode = profiles::BUBBLE_VIEW_MODE_PROFILE_CHOOSER; |
+ break; |
} |
+ ProfileChooserView::ShowBubble(view_mode, service_type, anchor_view, arrow, |
+ alignment, browser()); |
} else { |
- views::BubbleBorder::Arrow arrow = views::BubbleBorder::TOP_RIGHT; |
- views::View* anchor_view = frame_->GetAvatarMenuButton(); |
- if (!anchor_view) |
- anchor_view = toolbar_->app_menu(); |
- else if (!frame_->GetAvatarMenuButton()->button_on_right()) |
- arrow = views::BubbleBorder::TOP_LEFT; |
gfx::Point origin; |
views::View::ConvertPointToScreen(anchor_view, &origin); |
gfx::Rect bounds(origin, anchor_view->size()); |
@@ -2419,7 +2421,7 @@ void BrowserView::ShowAvatarBubbleFromAvatarButton( |
ShouldHideUIForFullscreen() ? views::BubbleBorder::PAINT_TRANSPARENT : |
views::BubbleBorder::PAINT_NORMAL; |
AvatarMenuBubbleView::ShowBubble(anchor_view, arrow, arrow_paint_type, |
- views::BubbleBorder::ALIGN_ARROW_TO_MID_ANCHOR, bounds, browser()); |
+ alignment, bounds, browser()); |
ProfileMetrics::LogProfileOpenMethod(ProfileMetrics::ICON_AVATAR_BUBBLE); |
} |
} |