summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authorsail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-19 20:01:10 +0000
committersail@chromium.org <sail@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-19 20:01:10 +0000
commit67d2dcd800579b0e16395b42474dfceb0786db10 (patch)
tree3c5cbc89f8e37e0aeb7b9ea2b83942b839248b00 /chrome/browser
parentb2bf82f4ad459e8546c9126c05cd32a34c5407df (diff)
downloadchromium_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.cc29
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 {