Chromium Code Reviews| Index: chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc |
| =================================================================== |
| --- chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc (revision 144897) |
| +++ chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc (working copy) |
| @@ -164,6 +164,14 @@ |
| this, chrome::NOTIFICATION_EXTENSION_UNLOADED, |
| content::Source<Profile>( |
| toolbar->browser()->profile()->GetOriginalProfile())); |
| + registrar_.Add( |
| + this, chrome::NOTIFICATION_EXTENSION_COMMAND_ADDED, |
| + content::Source<Profile>( |
| + toolbar->browser()->profile()->GetOriginalProfile())); |
| + registrar_.Add( |
| + this, chrome::NOTIFICATION_EXTENSION_COMMAND_REMOVED, |
| + content::Source<Profile>( |
| + toolbar->browser()->profile()->GetOriginalProfile())); |
| } |
| ~BrowserActionButton() { |
| @@ -196,6 +204,21 @@ |
| case chrome::NOTIFICATION_WINDOW_CLOSED: |
| DisconnectBrowserActionPopupAccelerator(); |
| break; |
| + case chrome::NOTIFICATION_EXTENSION_COMMAND_ADDED: |
| + case chrome::NOTIFICATION_EXTENSION_COMMAND_REMOVED: { |
| + std::pair<const std::string, const std::string>* payload = |
| + content::Details<std::pair<const std::string, const std::string> >( |
| + details).ptr(); |
| + if (extension_->id() == payload->first && |
|
Yoyo Zhou
2012/06/29 18:30:58
nit: looks funny to have these comparisons be diff
|
| + payload->second == |
| + extension_manifest_values::kBrowserActionKeybindingEvent) { |
| + if (type == chrome::NOTIFICATION_EXTENSION_COMMAND_ADDED) |
| + ConnectBrowserActionPopupAccelerator(); |
| + else |
| + DisconnectBrowserActionPopupAccelerator(); |
| + } |
| + break; |
| + } |
| default: |
| NOTREACHED(); |
| break; |
| @@ -432,6 +455,11 @@ |
| g_object_unref(accel_group_); |
| accel_group_ = NULL; |
| keybinding_.reset(NULL); |
| + |
| + // We've removed the accelerator, so no need to listen to this anymore. |
| + registrar_.Remove(this, |
| + chrome::NOTIFICATION_WINDOW_CLOSED, |
| + content::Source<GtkWindow>(window)); |
|
Finnur
2012/06/29 14:35:38
If we don't remove this, then double registration
Yoyo Zhou
2012/06/29 18:30:58
Yup.
|
| } |
| } |