Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(431)

Unified Diff: ui/views/controls/menu/menu_runner.cc

Issue 16979002: Add ContextMenuSourceType to views::ContextMenuController::ShowContextMenuForView. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698