[GTK] Don't show accel labels in context menu items
authorcarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2012 06:18:20 +0000 (06:18 +0000)
committercarlosgc@webkit.org <carlosgc@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 4 Jul 2012 06:18:20 +0000 (06:18 +0000)
https://bugs.webkit.org/show_bug.cgi?id=90437

Reviewed by Martin Robinson.

When a context menu item is created with a GtkMenuItem that has
been created from a GtkAction, if the action has an accelerator,
it's shown in the menu item label, like menu items in a menu
bar. In that case we should reset the accel closure of the menu
item label, like GtkUIManager does for popup menus, to make sure
the accelerator is not shown. This isn't needed for all other
ContextMenuIem constructors, because the GtkAction is created
without accelerator by webkit in those cases.

* platform/gtk/ContextMenuItemGtk.cpp:
(WebCore::ContextMenuItem::ContextMenuItem):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121829 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebCore/ChangeLog
Source/WebCore/platform/gtk/ContextMenuItemGtk.cpp

index d9bdcae..a9520ff 100644 (file)
@@ -1,3 +1,22 @@
+2012-07-03  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Don't show accel labels in context menu items
+        https://bugs.webkit.org/show_bug.cgi?id=90437
+
+        Reviewed by Martin Robinson.
+
+        When a context menu item is created with a GtkMenuItem that has
+        been created from a GtkAction, if the action has an accelerator,
+        it's shown in the menu item label, like menu items in a menu
+        bar. In that case we should reset the accel closure of the menu
+        item label, like GtkUIManager does for popup menus, to make sure
+        the accelerator is not shown. This isn't needed for all other
+        ContextMenuIem constructors, because the GtkAction is created
+        without accelerator by webkit in those cases.
+
+        * platform/gtk/ContextMenuItemGtk.cpp:
+        (WebCore::ContextMenuItem::ContextMenuItem):
+
 2012-07-03  Christophe Dumez  <christophe.dumez@intel.com>
 
         [EFL] Move BatteryClientEfl from WebKit to WebCore
index 68ae5a5..d70b5be 100644 (file)
@@ -144,6 +144,17 @@ static PlatformMenuItemDescription createPlatformMenuItemDescription(ContextMenu
 ContextMenuItem::ContextMenuItem(PlatformMenuItemDescription item)
     : m_platformDescription(item)
 {
+    // Don't show accel labels in context menu items.
+    GtkAction* action = gtkAction();
+    if (!action)
+        return;
+
+    if (!gtk_action_get_accel_path(action))
+        return;
+
+    GtkWidget* child = gtk_bin_get_child(GTK_BIN(item));
+    if (GTK_IS_ACCEL_LABEL(child))
+        gtk_accel_label_set_accel_closure(GTK_ACCEL_LABEL(child), 0);
 }
 
 ContextMenuItem::ContextMenuItem(ContextMenu* subMenu)