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

Unified Diff: chrome/browser/gtk/menu_gtk.cc

Issue 3032038: The button menu items on GTK menus honor the enabled state of the command.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 5 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 | « app/menus/button_menu_item_model.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/gtk/menu_gtk.cc
===================================================================
--- chrome/browser/gtk/menu_gtk.cc (revision 54011)
+++ chrome/browser/gtk/menu_gtk.cc (working copy)
@@ -80,26 +80,27 @@
int index = GPOINTER_TO_INT(g_object_get_data(
G_OBJECT(button), "button-model-id"));
- std::string label =
- ConvertAcceleratorsFromWindowsStyle(
- UTF16ToUTF8(model->GetLabelAt(index)));
- gtk_button_set_label(GTK_BUTTON(button), label.c_str());
-}
-
-void SetupDynamicLabelMenuButton(GtkWidget* button,
- GtkWidget* menu,
- menus::ButtonMenuItemModel* model,
- int index) {
if (model->IsLabelDynamicAt(index)) {
- g_object_set_data(G_OBJECT(button), "button-model",
- model);
- g_object_set_data(G_OBJECT(button), "button-model-id",
- GINT_TO_POINTER(index));
- g_signal_connect(menu, "show", G_CALLBACK(OnSubmenuShowButtonMenuItem),
- button);
+ std::string label =
+ ConvertAcceleratorsFromWindowsStyle(
+ UTF16ToUTF8(model->GetLabelAt(index)));
+ gtk_button_set_label(GTK_BUTTON(button), label.c_str());
}
+ gtk_widget_set_sensitive(GTK_WIDGET(button), model->IsEnabledAt(index));
}
+void SetupButtonShowHandler(GtkWidget* button,
+ GtkWidget* menu,
+ menus::ButtonMenuItemModel* model,
+ int index) {
+ g_object_set_data(G_OBJECT(button), "button-model",
+ model);
+ g_object_set_data(G_OBJECT(button), "button-model-id",
+ GINT_TO_POINTER(index));
+ g_signal_connect(menu, "show", G_CALLBACK(OnSubmenuShowButtonMenuItem),
+ button);
+}
+
void OnSubmenuShowButtonImage(GtkWidget* widget, GtkButton* button) {
MenuGtk::Delegate* delegate = reinterpret_cast<MenuGtk::Delegate*>(
g_object_get_data(G_OBJECT(button), "menu-gtk-delegate"));
@@ -401,7 +402,7 @@
UTF16ToUTF8(model->GetLabelAt(i))).c_str());
}
- SetupDynamicLabelMenuButton(button, menu, model, i);
+ SetupButtonShowHandler(button, menu, model, i);
break;
}
case menus::ButtonMenuItemModel::TYPE_BUTTON_LABEL: {
@@ -412,7 +413,7 @@
GTK_BUTTON(button),
RemoveWindowsStyleAccelerators(
UTF16ToUTF8(model->GetLabelAt(i))).c_str());
- SetupDynamicLabelMenuButton(button, menu, model, i);
+ SetupButtonShowHandler(button, menu, model, i);
break;
}
}
@@ -465,7 +466,7 @@
menus::ButtonMenuItemModel* model =
reinterpret_cast<menus::ButtonMenuItemModel*>(
g_object_get_data(G_OBJECT(menu_item), "button-model"));
- if (model) {
+ if (model && model->IsCommandIdEnabled(command_id)) {
if (menu->delegate_)
menu->delegate_->CommandWillBeExecuted();
« no previous file with comments | « app/menus/button_menu_item_model.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698