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

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

Issue 28105: Implement accelerators in the gtk port. (Closed)
Patch Set: Fixes for evanm Created 11 years, 10 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
Index: chrome/browser/gtk/menu_gtk.cc
diff --git a/chrome/browser/gtk/menu_gtk.cc b/chrome/browser/gtk/menu_gtk.cc
index af6c4e96e78b77866eb0a6dd193253e1985d7334..6b38c3cd944c916c82755ec0b10bc2b581d20db2 100644
--- a/chrome/browser/gtk/menu_gtk.cc
+++ b/chrome/browser/gtk/menu_gtk.cc
@@ -73,8 +73,10 @@ GdkPixbuf* GdkPixbufFromSkBitmap(const SkBitmap* bitmap) {
} // namespace
MenuGtk::MenuGtk(MenuGtk::Delegate* delegate,
- const MenuCreateMaterial* menu_data)
+ const MenuCreateMaterial* menu_data,
+ GtkAccelGroup* accel_group)
: delegate_(delegate),
+ accel_group_(accel_group),
menu_(gtk_menu_new()) {
g_object_ref_sink(menu_);
BuildMenuIn(menu_, menu_data);
@@ -146,6 +148,18 @@ void MenuGtk::BuildMenuIn(GtkWidget* menu,
gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu);
}
+ if (menu_data->accel_key) {
+ // If we ever want to let the user do any key remaping, we'll need to
+ // change the following so we make a gtk_accel_map which keeps the actual
+ // keys.
+ gtk_widget_add_accelerator(menu_item,
+ "activate",
+ accel_group_,
+ menu_data->accel_key,
+ GdkModifierType(menu_data->accel_modifiers),
+ GTK_ACCEL_VISIBLE);
+ }
+
g_object_set_data(G_OBJECT(menu_item), "menu-data",
const_cast<MenuCreateMaterial*>(menu_data));

Powered by Google App Engine
This is Rietveld 408576698