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 7c44dd17258fde84b9059d4130ea94d1a111e8f6..38bfe809d91e9156801845abd098900e6296e564 100644 |
| --- a/ui/views/controls/menu/menu_controller.cc |
| +++ b/ui/views/controls/menu/menu_controller.cc |
| @@ -820,9 +820,22 @@ 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 (preserve_current_gesture_for_owner()) { |
| + event->ConvertLocationToTarget(source->GetWidget()->GetNativeWindow(), |
| + owner()->GetNativeWindow()); |
| + owner()->OnGestureEvent(event); |
| + // Reset |preserve_current_gesture_for_owner_| flag when the current gesture |
|
msw
2017/06/01 20:24:27
optional nit for one-liner:
// Reset |preserve_c
minch1
2017/06/23 23:13:02
Done.
|
| + // ends. |
| + if (event->type() == ui::ET_GESTURE_END) |
| + set_preserve_current_gesture_for_owner(false); |
|
msw
2017/06/01 20:24:27
optional nit: set the member directly instead of u
minch1
2017/06/23 23:13:02
Done.
|
| + } |
| +#endif // !defined(OS_MACOSX) |
| } |
| void MenuController::OnTouchEvent(SubmenuView* source, ui::TouchEvent* event) { |
| @@ -1376,27 +1389,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_id_(ViewStorage::GetInstance()->CreateStorageID()), |
| - 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; |
| } |