| Index: ui/views/controls/menu/menu_controller.cc
|
| diff --git a/ui/views/controls/menu/menu_controller.cc b/ui/views/controls/menu/menu_controller.cc
|
| index a5ecb7df05c4a3fc1bda4e00ee870b38a24475e9..bb9ed0e1550a2a584223839d91a653ac7850f825 100644
|
| --- a/ui/views/controls/menu/menu_controller.cc
|
| +++ b/ui/views/controls/menu/menu_controller.cc
|
| @@ -401,6 +401,7 @@ MenuController::State::~State() {}
|
|
|
| // static
|
| MenuController* MenuController::active_instance_ = NULL;
|
| +bool MenuController::do_cancel_ = true;
|
|
|
| // static
|
| MenuController* MenuController::GetActiveInstance() {
|
| @@ -820,9 +821,16 @@ void MenuController::OnGestureEvent(SubmenuView* source,
|
| if (event->stopped_propagation())
|
| return;
|
|
|
| - if (!part.submenu)
|
| + if (part.submenu) {
|
| + part.submenu->OnGestureEvent(event);
|
| return;
|
| - part.submenu->OnGestureEvent(event);
|
| + }
|
| +
|
| + if (!DoCancel()) {
|
| + event->ConvertLocationToTarget(source->GetWidget()->GetNativeWindow(),
|
| + owner()->GetNativeWindow());
|
| + owner()->OnGestureEvent(event);
|
| + }
|
| }
|
|
|
| void MenuController::OnTouchEvent(SubmenuView* source, ui::TouchEvent* event) {
|
|
|