Index: chrome/browser/gtk/menu_gtk.cc |
diff --git a/chrome/browser/gtk/menu_gtk.cc b/chrome/browser/gtk/menu_gtk.cc |
index 04450efdcd3dd8be63a96dcdc9490d90ac10087a..52b9c12ba1f2a2fcffa4077beee9de8a01ba2d0b 100644 |
--- a/chrome/browser/gtk/menu_gtk.cc |
+++ b/chrome/browser/gtk/menu_gtk.cc |
@@ -803,7 +803,6 @@ void MenuGtk::SetMenuItemInfo(GtkWidget* widget, gpointer userdata) { |
if (model->IsVisibleAt(id)) { |
// Update the menu item label if it is dynamic. |
- // TODO(atwilson): Update the icon as well (http://crbug.com/66508). |
if (model->IsItemDynamicAt(id)) { |
std::string label = |
gfx::ConvertAcceleratorsFromWindowsStyle( |
@@ -814,6 +813,17 @@ void MenuGtk::SetMenuItemInfo(GtkWidget* widget, gpointer userdata) { |
#else |
gtk_label_set_label(GTK_LABEL(GTK_BIN(widget)->child), label.c_str()); |
Evan Stade
2010/12/23 02:36:43
side note.
I wonder if this actually works for Gt
|
#endif |
+ if (GTK_IS_IMAGE_MENU_ITEM(widget)) { |
+ SkBitmap icon; |
+ if (model->GetIconAt(id, &icon)) { |
+ GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&icon); |
+ gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), |
+ gtk_image_new_from_pixbuf(pixbuf)); |
+ g_object_unref(pixbuf); |
+ } else { |
+ gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(widget), NULL); |
+ } |
+ } |
} |
gtk_widget_show(widget); |