Chromium Code Reviews| Index: chrome/browser/ui/views/toolbar_view.cc |
| diff --git a/chrome/browser/ui/views/toolbar_view.cc b/chrome/browser/ui/views/toolbar_view.cc |
| index a22bccf37e2f545d1ff5672a946dead02c564520..540e603da6cddb7335e264bed1b53d95c3ced2c1 100644 |
| --- a/chrome/browser/ui/views/toolbar_view.cc |
| +++ b/chrome/browser/ui/views/toolbar_view.cc |
| @@ -98,7 +98,8 @@ ToolbarView::ToolbarView(Browser* browser) |
| browser_actions_(NULL), |
| app_menu_(NULL), |
| browser_(browser), |
| - profiles_menu_contents_(NULL) { |
| + profiles_menu_contents_(NULL), |
| + is_wrench_menu_model_valid_(true) { |
| set_id(VIEW_ID_TOOLBAR); |
| browser_->command_updater()->AddCommandObserver(IDC_BACK, this); |
| @@ -337,6 +338,11 @@ void ToolbarView::RunMenu(views::View* source, const gfx::Point& /* pt */) { |
| DCHECK_EQ(VIEW_ID_APP_MENU, source->id()); |
| wrench_menu_.reset(new WrenchMenu(browser_)); |
| + |
| + if (!is_wrench_menu_model_valid_) { |
|
sky
2011/10/07 19:40:17
Is this really enough? What happens if a global er
sail
2011/10/07 20:42:08
I believe if the bookmark model changes while the
|
| + wrench_menu_model_.reset(new WrenchMenuModel(this, browser_)); |
| + is_wrench_menu_model_valid_ = true; |
| + } |
| wrench_menu_->Init(wrench_menu_model_.get()); |
| FOR_EACH_OBSERVER(views::MenuListener, menu_listeners_, OnMenuOpened()); |
| @@ -418,7 +424,10 @@ void ToolbarView::Observe(int type, |
| } |
| case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: |
| case chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE: |
| + UpdateAppMenuBadge(); |
| + break; |
| case chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED: |
| + is_wrench_menu_model_valid_ = false; |
| UpdateAppMenuBadge(); |
| break; |
| default: |