| Index: ui/views/controls/menu/menu_runner.cc
|
| diff --git a/ui/views/controls/menu/menu_runner.cc b/ui/views/controls/menu/menu_runner.cc
|
| index 604187bd36cc11a0a7e4532377ffc260530de901..49855265a72c2f7ab5e29907982020fe01e4cc02 100644
|
| --- a/ui/views/controls/menu/menu_runner.cc
|
| +++ b/ui/views/controls/menu/menu_runner.cc
|
| @@ -341,17 +341,36 @@ MenuRunner::RunResult MenuRunner::RunMenuAt(Widget* parent,
|
| display_change_listener_.reset(
|
| internal::DisplayChangeListener::Create(parent, this));
|
| }
|
| - if ((types & MenuRunner::CONTEXT_MENU) &&
|
| - parent &&
|
| - !MenuItemView::IsBubble(anchor)) {
|
| - const ui::Event* current_event = parent->GetCurrentEvent();
|
| - anchor = current_event && current_event->IsMouseEvent() ?
|
| - MenuItemView::TOPLEFT : MenuItemView::BOTTOMCENTER;
|
| - }
|
|
|
| return holder_->RunMenuAt(parent, button, bounds, anchor, types);
|
| }
|
|
|
| +MenuRunner::RunResult MenuRunner::RunContextMenuAt(
|
| + Widget* parent,
|
| + MenuButton* button,
|
| + const gfx::Rect& bounds,
|
| + ui::ContextMenuSourceType source_type,
|
| + int32 types) {
|
| + MenuItemView::AnchorPosition anchor = MenuItemView::TOPLEFT;
|
| + switch (source_type) {
|
| + case ui::CONTEXT_MENU_SOURCE_KEYBOARD:
|
| + break;
|
| + case ui::CONTEXT_MENU_SOURCE_MOUSE:
|
| + break;
|
| + case ui::CONTEXT_MENU_SOURCE_TOUCH:
|
| + anchor = MenuItemView::BOTTOMCENTER;
|
| + break;
|
| + case ui::CONTEXT_MENU_SOURCE_TOUCH_EDITING:
|
| + anchor = MenuItemView::BOTTOMCENTER;
|
| + break;
|
| + default:
|
| + break;
|
| + }
|
| + types |= views::MenuRunner::CONTEXT_MENU;
|
| + return RunMenuAt(parent, button, bounds, anchor, types);
|
| +}
|
| +
|
| +
|
| bool MenuRunner::IsRunning() const {
|
| return holder_->running();
|
| }
|
|
|