Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(146)

Unified Diff: chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc

Issue 10690042: GTK: Changes to Extension Commands now take effect immediately. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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.
}
}
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698