| Index: ui/views/controls/button/button_dropdown.cc
|
| diff --git a/ui/views/controls/button/button_dropdown.cc b/ui/views/controls/button/button_dropdown.cc
|
| index a243cee1917c4a0aa01e377bdf9d168218f1a012..fa57e3b1e9abb020cc83f9ee753523ce2c4a78fe 100644
|
| --- a/ui/views/controls/button/button_dropdown.cc
|
| +++ b/ui/views/controls/button/button_dropdown.cc
|
| @@ -70,7 +70,8 @@ bool ButtonDropDown::OnMousePressed(const ui::MouseEvent& event) {
|
| base::MessageLoop::current()->PostDelayedTask(
|
| FROM_HERE,
|
| base::Bind(&ButtonDropDown::ShowDropDownMenu,
|
| - show_menu_factory_.GetWeakPtr()),
|
| + show_menu_factory_.GetWeakPtr(),
|
| + ui::GetMenuSourceTypeForEvent(event)),
|
| base::TimeDelta::FromMilliseconds(kMenuTimerDelay));
|
| }
|
| return ImageButton::OnMousePressed(event);
|
| @@ -85,7 +86,7 @@ bool ButtonDropDown::OnMouseDragged(const ui::MouseEvent& event) {
|
| // it immediately.
|
| if (event.y() > y_position_on_lbuttondown_ + GetHorizontalDragThreshold()) {
|
| show_menu_factory_.InvalidateWeakPtrs();
|
| - ShowDropDownMenu();
|
| + ShowDropDownMenu(ui::GetMenuSourceTypeForEvent(event));
|
| }
|
| }
|
|
|
| @@ -132,12 +133,13 @@ void ButtonDropDown::GetAccessibleState(ui::AccessibleViewState* state) {
|
| }
|
|
|
| void ButtonDropDown::ShowContextMenuForView(View* source,
|
| - const gfx::Point& point) {
|
| + const gfx::Point& point,
|
| + ui::MenuSourceType source_type) {
|
| if (!enabled())
|
| return;
|
|
|
| show_menu_factory_.InvalidateWeakPtrs();
|
| - ShowDropDownMenu();
|
| + ShowDropDownMenu(source_type);
|
| }
|
|
|
| bool ButtonDropDown::ShouldEnterPushedState(const ui::Event& event) {
|
| @@ -153,7 +155,7 @@ bool ButtonDropDown::ShouldShowMenu() {
|
| return true;
|
| }
|
|
|
| -void ButtonDropDown::ShowDropDownMenu() {
|
| +void ButtonDropDown::ShowDropDownMenu(ui::MenuSourceType source_type) {
|
| if (!ShouldShowMenu())
|
| return;
|
|
|
| @@ -191,6 +193,7 @@ void ButtonDropDown::ShowDropDownMenu() {
|
| menu_runner_->RunMenuAt(GetWidget(), NULL,
|
| gfx::Rect(menu_position, gfx::Size(0, 0)),
|
| MenuItemView::TOPLEFT,
|
| + source_type,
|
| MenuRunner::HAS_MNEMONICS);
|
| if (result == MenuRunner::MENU_DELETED)
|
| return;
|
| @@ -202,6 +205,7 @@ void ButtonDropDown::ShowDropDownMenu() {
|
| menu_runner_->RunMenuAt(GetWidget(), NULL,
|
| gfx::Rect(menu_position, gfx::Size(0, 0)),
|
| MenuItemView::TOPLEFT,
|
| + source_type,
|
| MenuRunner::HAS_MNEMONICS);
|
| if (result == MenuRunner::MENU_DELETED)
|
| return;
|
|
|