OLD | NEW |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/gtk/menu_gtk.h" | 5 #include "chrome/browser/gtk/menu_gtk.h" |
6 | 6 |
7 #include "app/gfx/gtk_util.h" | 7 #include "app/gfx/gtk_util.h" |
8 #include "app/l10n_util.h" | 8 #include "app/l10n_util.h" |
9 #include "base/logging.h" | 9 #include "base/logging.h" |
10 #include "base/message_loop.h" | 10 #include "base/message_loop.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 if (menu_data->submenu) { | 170 if (menu_data->submenu) { |
171 GtkWidget* submenu = gtk_menu_new(); | 171 GtkWidget* submenu = gtk_menu_new(); |
172 BuildMenuIn(submenu, menu_data->submenu, accel_group); | 172 BuildMenuIn(submenu, menu_data->submenu, accel_group); |
173 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu); | 173 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), submenu); |
174 } else if (menu_data->custom_submenu) { | 174 } else if (menu_data->custom_submenu) { |
175 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), | 175 gtk_menu_item_set_submenu(GTK_MENU_ITEM(menu_item), |
176 menu_data->custom_submenu->menu_.get()); | 176 menu_data->custom_submenu->menu_.get()); |
177 submenus_we_own_.push_back(menu_data->custom_submenu); | 177 submenus_we_own_.push_back(menu_data->custom_submenu); |
178 } | 178 } |
179 | 179 |
180 if ((menu_data->only_show || accel_group) && menu_data->accel_key) { | 180 if (menu_data->accel_key) { |
181 // If we ever want to let the user do any key remaping, we'll need to | 181 // If we ever want to let the user do any key remaping, we'll need to |
182 // change the following so we make a gtk_accel_map which keeps the actual | 182 // change the following so we make a gtk_accel_map which keeps the actual |
183 // keys. | 183 // keys. |
184 gtk_widget_add_accelerator(menu_item, | 184 gtk_widget_add_accelerator(menu_item, |
185 "activate", | 185 "activate", |
186 menu_data->only_show ? dummy_accel_group_ : | 186 menu_data->only_show || !accel_group ? |
187 accel_group, | 187 dummy_accel_group_ : accel_group, |
188 menu_data->accel_key, | 188 menu_data->accel_key, |
189 GdkModifierType(menu_data->accel_modifiers), | 189 GdkModifierType(menu_data->accel_modifiers), |
190 GTK_ACCEL_VISIBLE); | 190 GTK_ACCEL_VISIBLE); |
191 } | 191 } |
192 | 192 |
193 g_object_set_data(G_OBJECT(menu_item), "menu-data", | 193 g_object_set_data(G_OBJECT(menu_item), "menu-data", |
194 const_cast<MenuCreateMaterial*>(menu_data)); | 194 const_cast<MenuCreateMaterial*>(menu_data)); |
195 | 195 |
196 g_signal_connect(G_OBJECT(menu_item), "activate", | 196 g_signal_connect(G_OBJECT(menu_item), "activate", |
197 G_CALLBACK(OnMenuItemActivated), this); | 197 G_CALLBACK(OnMenuItemActivated), this); |
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
363 gtk_widget_set_sensitive( | 363 gtk_widget_set_sensitive( |
364 widget, menu->delegate_->IsCommandEnabled(id)); | 364 widget, menu->delegate_->IsCommandEnabled(id)); |
365 | 365 |
366 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); | 366 GtkWidget* submenu = gtk_menu_item_get_submenu(GTK_MENU_ITEM(widget)); |
367 if (submenu) { | 367 if (submenu) { |
368 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, | 368 gtk_container_foreach(GTK_CONTAINER(submenu), &SetMenuItemInfo, |
369 userdata); | 369 userdata); |
370 } | 370 } |
371 } | 371 } |
372 } | 372 } |
OLD | NEW |