Index: chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc |
diff --git a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc |
index e2cd0d6e4de17c843c773c38e00bdc28fcf1d546..ea42b35225c5c7db53bc1054464cf54769298cd7 100644 |
--- a/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc |
+++ b/chrome/browser/ui/gtk/browser_actions_toolbar_gtk.cc |
@@ -238,6 +238,9 @@ class BrowserActionButton : public content::NotificationObserver, |
} else if (default_icon_) { |
SetImage(default_icon_); |
} |
+ bool enabled = extension_->browser_action()->GetIsVisible(tab_id); |
+ gtk_widget_set_sensitive(button(), enabled ? TRUE : FALSE); |
+ |
gtk_widget_queue_draw(button()); |
} |
@@ -582,7 +585,7 @@ BrowserActionsToolbarGtk::~BrowserActionsToolbarGtk() { |
hbox_.Destroy(); |
} |
-int BrowserActionsToolbarGtk::GetCurrentTabId() { |
+int BrowserActionsToolbarGtk::GetCurrentTabId() const { |
TabContents* active_tab = chrome::GetActiveTabContents(browser_); |
if (!active_tab) |
return -1; |
@@ -789,7 +792,8 @@ bool BrowserActionsToolbarGtk::IsCommandIdChecked(int command_id) const { |
} |
bool BrowserActionsToolbarGtk::IsCommandIdEnabled(int command_id) const { |
- return true; |
+ const Extension* extension = model_->GetExtensionByIndex(command_id); |
+ return extension->browser_action()->GetIsVisible(GetCurrentTabId()); |
} |
bool BrowserActionsToolbarGtk::GetAcceleratorForCommandId( |