Chromium Code Reviews| 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..e007c844a13a6fd09cdb743f24618b28c25c7093 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,11 @@ 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, |
|
oshima
2011/06/07 17:21:44
move NULL to next line
rhashimoto
2011/06/07 21:07:22
Done.
|
| + gfx::Rect(p, gfx::Size()), |
| + views::MenuItemView::TOPLEFT, |
| + true); |
| } |
| ///////////////////////////////////////////////////////////////// |
| @@ -1032,18 +1037,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() { |