Index: views/controls/textfield/native_textfield_views.cc |
diff --git a/views/controls/textfield/native_textfield_views.cc b/views/controls/textfield/native_textfield_views.cc |
index 2d7b6152073a1d0b13c7a01bbbc2eb4aa6236271..f8e4983b5f64086c90cb935e47f0ba927e310b31 100644 |
--- a/views/controls/textfield/native_textfield_views.cc |
+++ b/views/controls/textfield/native_textfield_views.cc |
@@ -19,7 +19,8 @@ |
#include "views/background.h" |
#include "views/border.h" |
#include "views/controls/focusable_border.h" |
-#include "views/controls/menu/menu_2.h" |
+#include "views/controls/menu/menu_item_view.h" |
+#include "views/controls/menu/menu_model_adapter.h" |
#include "views/controls/textfield/text_style.h" |
#include "views/controls/textfield/textfield.h" |
#include "views/controls/textfield/textfield_controller.h" |
@@ -29,6 +30,7 @@ |
#include "views/metrics.h" |
#include "views/views_delegate.h" |
#include "views/widget/widget.h" |
+#include "views/window/window.h" |
#if defined(OS_LINUX) |
#include "ui/gfx/gtk_util.h" |
@@ -258,8 +260,12 @@ gfx::NativeCursor NativeTextfieldViews::GetCursor(const MouseEvent& event) { |
void NativeTextfieldViews::ShowContextMenuForView(View* source, |
const gfx::Point& p, |
bool is_mouse_gesture) { |
- InitContextMenuIfRequired(); |
- context_menu_menu_->RunContextMenuAt(p); |
+ UpdateContextMenu(); |
+ context_menu_menu_->RunMenuAt(GetWindow()->GetNativeWindow(), |
+ NULL, |
+ gfx::Rect(p, gfx::Size()), |
+ views::MenuItemView::TOPLEFT, |
+ true); |
} |
///////////////////////////////////////////////////////////////// |
@@ -1032,18 +1038,24 @@ void NativeTextfieldViews::UpdateAfterChange(bool text_changed, |
} |
} |
-void NativeTextfieldViews::InitContextMenuIfRequired() { |
- if (context_menu_menu_.get()) |
- return; |
- context_menu_contents_.reset(new ui::SimpleMenuModel(this)); |
- context_menu_contents_->AddItemWithStringId(IDS_APP_CUT, IDS_APP_CUT); |
- context_menu_contents_->AddItemWithStringId(IDS_APP_COPY, IDS_APP_COPY); |
- context_menu_contents_->AddItemWithStringId(IDS_APP_PASTE, IDS_APP_PASTE); |
- context_menu_contents_->AddItemWithStringId(IDS_APP_DELETE, IDS_APP_DELETE); |
- context_menu_contents_->AddSeparator(); |
- context_menu_contents_->AddItemWithStringId(IDS_APP_SELECT_ALL, |
- IDS_APP_SELECT_ALL); |
- context_menu_menu_.reset(new Menu2(context_menu_contents_.get())); |
+void NativeTextfieldViews::UpdateContextMenu() { |
+ if (!context_menu_contents_.get()) { |
+ context_menu_contents_.reset(new ui::SimpleMenuModel(this)); |
+ context_menu_contents_->AddItemWithStringId(IDS_APP_CUT, IDS_APP_CUT); |
+ context_menu_contents_->AddItemWithStringId(IDS_APP_COPY, IDS_APP_COPY); |
+ context_menu_contents_->AddItemWithStringId(IDS_APP_PASTE, IDS_APP_PASTE); |
+ context_menu_contents_->AddItemWithStringId(IDS_APP_DELETE, IDS_APP_DELETE); |
+ context_menu_contents_->AddSeparator(); |
+ context_menu_contents_->AddItemWithStringId(IDS_APP_SELECT_ALL, |
+ IDS_APP_SELECT_ALL); |
+ |
+ context_menu_delegate_.reset( |
+ new views::MenuModelAdapter(context_menu_contents_.get())); |
+ context_menu_menu_.reset( |
+ new views::MenuItemView(context_menu_delegate_.get())); |
+ } |
+ |
+ context_menu_delegate_->BuildMenu(context_menu_menu_.get()); |
} |
void NativeTextfieldViews::OnTextInputTypeChanged() { |