Chromium Code Reviews| 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 e9125d68fbd0db740b72384230eb0c45cb640005..581b9e387ec22989036498269a329b5a3b37c446 100644 |
| --- a/ui/views/controls/menu/menu_controller.cc |
| +++ b/ui/views/controls/menu/menu_controller.cc |
| @@ -831,9 +831,21 @@ 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 !defined(OS_MACOSX) |
| + if (send_gesture_events_to_owner()) { |
|
sadrul
2017/08/30 20:31:39
This should happen at the very beginning?
minch1
2017/08/31 23:21:02
Removed to the entry of OnGestureEvent, then we ca
|
| + event->ConvertLocationToTarget(source->GetWidget()->GetNativeWindow(), |
| + owner()->GetNativeWindow()); |
| + owner()->OnGestureEvent(event); |
| + // Reset |send_gesture_events_to_owner_| when the first gesture ends. |
| + if (event->type() == ui::ET_GESTURE_END) |
| + send_gesture_events_to_owner_ = false; |
| + } |
| +#endif // !defined(OS_MACOSX) |
| } |
| void MenuController::OnTouchEvent(SubmenuView* source, ui::TouchEvent* event) { |
| @@ -1386,27 +1398,8 @@ void MenuController::OnKeyDown(ui::KeyboardCode key_code) { |
| MenuController::MenuController(bool blocking, |
| internal::MenuControllerDelegate* delegate) |
| : blocking_run_(blocking), |
| - showing_(false), |
| - exit_type_(EXIT_NONE), |
| - did_capture_(false), |
| - result_(NULL), |
| - accept_event_flags_(0), |
| - drop_target_(NULL), |
| - drop_position_(MenuDelegate::DROP_UNKNOWN), |
| - owner_(NULL), |
| - possible_drag_(false), |
| - drag_in_progress_(false), |
| - did_initiate_drag_(false), |
| - valid_drop_coordinates_(false), |
| - last_drop_operation_(MenuDelegate::DROP_UNKNOWN), |
| - showing_submenu_(false), |
| active_mouse_view_tracker_(base::MakeUnique<ViewTracker>()), |
| - hot_button_(nullptr), |
| - delegate_(delegate), |
| - is_combobox_(false), |
| - item_selected_by_touch_(false), |
| - current_mouse_event_target_(nullptr), |
| - current_mouse_pressed_state_(0) { |
| + delegate_(delegate) { |
| delegate_stack_.push_back(delegate_); |
| active_instance_ = this; |
| } |