Index: chrome/browser/ui/views/download/download_item_view.cc |
diff --git a/chrome/browser/ui/views/download/download_item_view.cc b/chrome/browser/ui/views/download/download_item_view.cc |
index 032d83cf3cc19264425ace5189efdd6f169efff6..4977edf2adc9ec58435cf3fa580240b3a6d0985a 100644 |
--- a/chrome/browser/ui/views/download/download_item_view.cc |
+++ b/chrome/browser/ui/views/download/download_item_view.cc |
@@ -517,11 +517,12 @@ void DownloadItemView::OnGestureEvent(ui::GestureEvent* event) { |
} |
void DownloadItemView::ShowContextMenuForView(View* source, |
- const gfx::Point& point) { |
+ const gfx::Point& point, |
+ ui::MenuSourceType source_type) { |
// |point| is in screen coordinates. So convert it to local coordinates first. |
gfx::Point local_point = point; |
ConvertPointFromScreen(this, &local_point); |
- ShowContextMenuImpl(local_point, true); |
+ ShowContextMenuImpl(local_point, source_type); |
} |
void DownloadItemView::ButtonPressed( |
@@ -889,7 +890,7 @@ void DownloadItemView::UpdateColorsFromTheme() { |
} |
void DownloadItemView::ShowContextMenuImpl(const gfx::Point& p, |
- bool is_mouse_gesture) { |
+ ui::MenuSourceType source_type) { |
gfx::Point point = p; |
gfx::Size size; |
@@ -906,7 +907,7 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Point& p, |
// If |is_mouse_gesture| is false, |p| is ignored. The menu is shown aligned |
// to drop down arrow button. |
- if (!is_mouse_gesture) { |
+ if (!source_type == ui::MENU_SOURCE_MOUSE) { |
drop_down_pressed_ = true; |
SetState(NORMAL, PUSHED); |
point.SetPoint(drop_down_x_left_, box_y_); |
@@ -926,7 +927,7 @@ void DownloadItemView::ShowContextMenuImpl(const gfx::Point& p, |
new DownloadShelfContextMenuView(download(), shelf_->GetNavigator())); |
} |
context_menu_->Run(GetWidget()->GetTopLevelWidget(), |
- gfx::Rect(point, size)); |
+ gfx::Rect(point, size), source_type); |
// We could be deleted now. |
} |
@@ -948,7 +949,7 @@ void DownloadItemView::HandlePressEvent(const ui::LocatedEvent& event, |
// so that the positioning of the context menu will be similar to a |
// keyboard invocation. I.e. we want the menu to always be positioned |
// next to the drop down button instead of the next to the pointer. |
- ShowContextMenuImpl(event.location(), false); |
+ ShowContextMenuImpl(event.location(), ui::MENU_SOURCE_KEYBOARD); |
// Once called, it is possible that *this was deleted (e.g.: due to |
// invoking the 'Discard' action.) |
} else if (!IsShowingWarningDialog()) { |