Index: ash/launcher/launcher_view.cc |
diff --git a/ash/launcher/launcher_view.cc b/ash/launcher/launcher_view.cc |
index 8585e49e55744f903145efa24d6ebf47befacd18..fb47c9f630e0b0257e5c79386b9acb2c4d14effb 100644 |
--- a/ash/launcher/launcher_view.cc |
+++ b/ash/launcher/launcher_view.cc |
@@ -1513,12 +1513,15 @@ bool LauncherView::ShowListMenuForView(const LauncherItem& item, |
new LauncherMenuModelAdapter(menu_model.get())), |
source, |
gfx::Point(), |
- false); |
+ false, |
+ ui::CONTEXT_MENU_SOURCE_NONE); |
return true; |
} |
-void LauncherView::ShowContextMenuForView(views::View* source, |
- const gfx::Point& point) { |
+void LauncherView::ShowContextMenuForView( |
+ views::View* source, |
+ const gfx::Point& point, |
+ ui::ContextMenuSourceType source_type) { |
int view_index = view_model_->GetIndexOfView(source); |
if (view_index != -1 && |
model_->items()[view_index].type == TYPE_APP_LIST) { |
@@ -1526,7 +1529,7 @@ void LauncherView::ShowContextMenuForView(views::View* source, |
} |
if (view_index == -1) { |
- Shell::GetInstance()->ShowContextMenu(point); |
+ Shell::GetInstance()->ShowContextMenu(point, source_type); |
return; |
} |
scoped_ptr<ui::MenuModel> menu_model(delegate_->CreateContextMenu( |
@@ -1542,14 +1545,16 @@ void LauncherView::ShowContextMenuForView(views::View* source, |
new views::MenuModelAdapter(menu_model.get())), |
source, |
point, |
- true); |
+ true, |
+ source_type); |
} |
void LauncherView::ShowMenu( |
scoped_ptr<views::MenuModelAdapter> menu_model_adapter, |
views::View* source, |
const gfx::Point& click_point, |
- bool context_menu) { |
+ bool context_menu, |
+ ui::ContextMenuSourceType source_type) { |
closing_event_time_ = base::TimeDelta(); |
launcher_menu_runner_.reset( |
new views::MenuRunner(menu_model_adapter->CreateMenu())); |
@@ -1594,12 +1599,21 @@ void LauncherView::ShowMenu( |
shelf->ForceUndimming(true); |
// NOTE: if you convert to HAS_MNEMONICS be sure and update menu building |
// code. |
- if (launcher_menu_runner_->RunMenuAt( |
- source->GetWidget(), |
- NULL, |
- anchor_point, |
- menu_alignment, |
- views::MenuRunner::CONTEXT_MENU) == views::MenuRunner::MENU_DELETED) { |
+ views::MenuRunner::RunResult result; |
+ if (context_menu) { |
+ result = launcher_menu_runner_->RunContextMenuAt(source->GetWidget(), |
+ NULL, |
+ anchor_point, |
+ source_type, |
+ 0); |
+ } else { |
+ result = launcher_menu_runner_->RunMenuAt(source->GetWidget(), |
+ NULL, |
+ anchor_point, |
+ menu_alignment, |
+ 0); |
+ } |
+ if (result == views::MenuRunner::MENU_DELETED) { |
if (!got_deleted) { |
got_deleted_ = NULL; |
shelf->ForceUndimming(false); |