Index: chrome/browser/tab_contents/render_view_context_menu_gtk.cc |
diff --git a/chrome/browser/tab_contents/render_view_context_menu_gtk.cc b/chrome/browser/tab_contents/render_view_context_menu_gtk.cc |
index f2e9f94d5aeede540973323d7ca142f5ec0be1b5..569bf53acfb2781eea35add36559de193ca456ab 100644 |
--- a/chrome/browser/tab_contents/render_view_context_menu_gtk.cc |
+++ b/chrome/browser/tab_contents/render_view_context_menu_gtk.cc |
@@ -8,8 +8,12 @@ |
#include "base/string_util.h" |
#include "chrome/app/chrome_command_ids.h" |
-#include "chrome/browser/renderer_host/render_widget_host_view_gtk.h" |
+#include "chrome/browser/ui/gtk/gtk_util.h" |
+#include "content/browser/renderer_host/render_widget_host_view_gtk.h" |
#include "content/browser/tab_contents/tab_contents.h" |
+#include "grit/generated_resources.h" |
+#include "ui/base/l10n/l10n_util.h" |
+#include "ui/gfx/gtk_util.h" |
#include "webkit/glue/context_menu.h" |
RenderViewContextMenuGtk::RenderViewContextMenuGtk( |
@@ -29,8 +33,26 @@ void RenderViewContextMenuGtk::PlatformInit() { |
if (params_.is_editable) { |
RenderWidgetHostViewGtk* rwhv = static_cast<RenderWidgetHostViewGtk*>( |
source_tab_contents_->GetRenderWidgetHostView()); |
- if (rwhv) |
- rwhv->AppendInputMethodsContextMenu(menu_gtk_.get()); |
+#if !defined(TOOLKIT_VIEWS) |
+ if (rwhv) { |
+ MenuGtk* menu = menu_gtk_.get(); |
+ gboolean show_input_method_menu = TRUE; |
+ |
+ g_object_get( |
+ gtk_widget_get_settings(GTK_WIDGET(rwhv->native_view())), |
+ "gtk-show-input-method-menu", &show_input_method_menu, NULL); |
+ if (!show_input_method_menu) |
+ return; |
+ |
+ std::string label = gfx::ConvertAcceleratorsFromWindowsStyle( |
+ l10n_util::GetStringUTF8(IDS_CONTENT_CONTEXT_INPUT_METHODS_MENU)); |
+ GtkWidget* menuitem = gtk_menu_item_new_with_mnemonic(label.c_str()); |
+ GtkWidget* submenu = rwhv->BuildInputMethodsGtkMenu(); |
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(menuitem), submenu); |
+ menu->AppendSeparator(); |
+ menu->AppendMenuItem(IDC_INPUT_METHODS_MENU, menuitem); |
+ } |
+#endif |
} |
} |