When keyboard shortcuts are disabled do not activate mnemonics or accelerators.  

	* gtk/gtklabel.c (gtk_label_class_init)
	* gtk/gtksettings.c (gtk_settings_class_init): Move
	'hildon-keyboard-shortcuts' to GtkSettings as it may be accessed
	without creating any labels
	* gtk/gtkmenushell.c (gtk_menu_shell_key_press): Activate mnemonics
	only if 'hildon-keyboard-shortcuts' GtkSetting is enabled
	* gtk/gtkwindow.c (gtk_window_key_press_event): Activate mnemonics and
	accelerators only if 'hildon-keyboard-shortcuts' GtkSetting is enabled 
	(#72375)
---
 gtk/gtklabel.c     |    6 ------
 gtk/gtkmenushell.c |    7 +++++++
 gtk/gtksettings.c  |   12 +++++++++++-
 gtk/gtkwindow.c    |    7 ++++++-
 4 files changed, 24 insertions(+), 8 deletions(-)

Index: gtk/gtkmenushell.c
===================================================================
--- gtk/gtkmenushell.c.orig
+++ gtk/gtkmenushell.c
@@ -718,6 +718,7 @@ gtk_menu_shell_key_press (GtkWidget   *w
 			  GdkEventKey *event)
 {
   GtkMenuShell *menu_shell;
+  gboolean keyboard_shortcuts;
   
   g_return_val_if_fail (GTK_IS_MENU_SHELL (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
@@ -730,6 +731,12 @@ gtk_menu_shell_key_press (GtkWidget   *w
   if (gtk_bindings_activate_event (GTK_OBJECT (widget), event))
     return TRUE;
 
+  g_object_get (gtk_widget_get_settings (widget),
+		"hildon-keyboard-shortcuts", &keyboard_shortcuts,
+		NULL);
+  if (!keyboard_shortcuts)
+    return FALSE;
+
   return gtk_menu_shell_activate_mnemonic (menu_shell, event);
 }
 
Index: gtk/gtkwindow.c
===================================================================
--- gtk/gtkwindow.c.orig
+++ gtk/gtkwindow.c
@@ -4537,9 +4537,14 @@ gtk_window_key_press_event (GtkWidget   
 {
   GtkWindow *window = GTK_WINDOW (widget);
   gboolean handled = FALSE;
+  gboolean keyboard_shortcuts;
+
+  g_object_get (gtk_widget_get_settings (widget),
+		"hildon-keyboard-shortcuts", &keyboard_shortcuts,
+		NULL);
 
   /* handle mnemonics and accelerators */
-  if (!handled)
+  if (keyboard_shortcuts && !handled)
     handled = gtk_window_activate_key (window, event);
 
   /* handle focus widget key events */
Index: gtk/gtklabel.c
===================================================================
--- gtk/gtklabel.c.orig
+++ gtk/gtklabel.c
@@ -597,12 +597,6 @@ gtk_label_class_init (GtkLabelClass *cla
 				"copy_clipboard", 0);
 				
   g_type_class_add_private (class, sizeof (GtkLabelPrivate));
-
-  gtk_settings_install_property (g_param_spec_boolean ("hildon-keyboard-shortcuts",
-						       P_("Visual keyboard shortcut cues"),
-						       P_("Whether menus should have visible accelerators and mnemonics"),
-						       TRUE,
-						       GTK_PARAM_READWRITE));
 }
 
 static void 
Index: gtk/gtksettings.c
===================================================================
--- gtk/gtksettings.c.orig
+++ gtk/gtksettings.c
@@ -78,7 +78,8 @@ enum {
   PROP_CURSOR_THEME_NAME,
   PROP_CURSOR_THEME_SIZE,
 #endif
-  PROP_ALTERNATIVE_BUTTON_ORDER
+  PROP_ALTERNATIVE_BUTTON_ORDER,
+  PROP_KEYBOARD_SHORTCUTS
 };
 
 
@@ -396,6 +397,15 @@ gtk_settings_class_init (GtkSettingsClas
 								   GTK_PARAM_READWRITE),
                                              NULL);
   g_assert (result == PROP_ALTERNATIVE_BUTTON_ORDER);
+
+  result = settings_install_property_parser (class,
+					     g_param_spec_boolean ("hildon-keyboard-shortcuts",
+								   P_("Visual keyboard shortcut cues"),
+								   P_("Whether menus should have visible accelerators and mnemonics"),
+								   TRUE,
+								   GTK_PARAM_READWRITE),
+					     NULL);
+  g_assert (result == PROP_KEYBOARD_SHORTCUTS);
 }
 
 static void
