diff options
author | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-19 20:01:10 +0000 |
---|---|---|
committer | sail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-19 20:01:10 +0000 |
commit | 67d2dcd800579b0e16395b42474dfceb0786db10 (patch) | |
tree | 3c5cbc89f8e37e0aeb7b9ea2b83942b839248b00 /chrome/browser | |
parent | b2bf82f4ad459e8546c9126c05cd32a34c5407df (diff) | |
download | chromium_src-67d2dcd800579b0e16395b42474dfceb0786db10.zip chromium_src-67d2dcd800579b0e16395b42474dfceb0786db10.tar.gz chromium_src-67d2dcd800579b0e16395b42474dfceb0786db10.tar.bz2 |
Multi-Profiles: Add profile avatar if second profile is added (glass frame)
In my original fix for this bug I forgot to implement a fix for glass frame. See:
http://codereview.chromium.org/7631027/
BUG=92740
TEST=
Review URL: http://codereview.chromium.org/7691006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@97496 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/ui/views/frame/glass_browser_frame_view.cc | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc index 815d624..91a4d33 100644 --- a/chrome/browser/ui/views/frame/glass_browser_frame_view.cc +++ b/chrome/browser/ui/views/frame/glass_browser_frame_view.cc @@ -85,15 +85,10 @@ GlassBrowserFrameView::GlassBrowserFrameView(BrowserFrame* frame, if (browser_view_->ShouldShowWindowIcon()) InitThrobberIcons(); - if (browser_view_->ShouldShowAvatar()) { - avatar_button_.reset(new AvatarMenuButton( - browser_view_->browser(), !browser_view_->IsOffTheRecord())); - AddChildView(avatar_button_.get()); - UpdateAvatarInfo(); - if (!browser_view_->IsOffTheRecord()) { - registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, - NotificationService::AllSources()); - } + UpdateAvatarInfo(); + if (!browser_view_->IsOffTheRecord()) { + registrar_.Add(this, chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED, + NotificationService::AllSources()); } } @@ -551,7 +546,6 @@ void GlassBrowserFrameView::Observe(int type, switch (type) { case chrome::NOTIFICATION_PROFILE_CACHED_INFO_CHANGED: UpdateAvatarInfo(); - LayoutAvatar(); break; default: NOTREACHED() << "Got a notification we didn't register for!"; @@ -573,6 +567,21 @@ void GlassBrowserFrameView::InitThrobberIcons() { } void GlassBrowserFrameView::UpdateAvatarInfo() { + if (browser_view_->ShouldShowAvatar()) { + if (!avatar_button_.get()) { + avatar_button_.reset(new AvatarMenuButton( + browser_view_->browser(), !browser_view_->IsOffTheRecord())); + AddChildView(avatar_button_.get()); + frame_->GetRootView()->Layout(); + } + } else if (avatar_button_.get()) { + RemoveChildView(avatar_button_.release()); + frame_->GetRootView()->Layout(); + } + + if (!avatar_button_.get()) + return; + if (browser_view_->IsOffTheRecord()) { avatar_button_->SetIcon(browser_view_->GetOTRAvatarIcon()); } else { |