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 6446dbf6b3cd289e6e01071b414f2f280c233b04..22e897eb0b2443826b05b0d801ed8010cffdf067 100644 |
| --- a/ui/views/controls/menu/menu_controller.cc |
| +++ b/ui/views/controls/menu/menu_controller.cc |
| @@ -624,11 +624,16 @@ bool MenuController::OnMouseDragged(SubmenuView* source, |
| } |
| MenuItemView* mouse_menu = NULL; |
| if (part.type == MenuPart::MENU_ITEM) { |
| - if (!part.menu) |
| - part.menu = source->GetMenuItem(); |
| - else |
| - mouse_menu = part.menu; |
| - SetSelection(part.menu ? part.menu : state_.item, SELECTION_OPEN_SUBMENU); |
| + // If there is no menu target, but a submenu target, then we are interacting |
| + // with an empty menu item within a submenu. These cannot become selection |
| + // targets for mouse interaction, so do not attempt to update selection. |
| + if (!(!part.menu && part.submenu)) { |
|
sky
2017/03/28 23:47:00
This is rather unreadable. How about:
if (part.men
jonross
2017/03/29 16:58:24
Done.
|
| + if (!part.menu) |
| + part.menu = source->GetMenuItem(); |
| + else |
| + mouse_menu = part.menu; |
| + SetSelection(part.menu ? part.menu : state_.item, SELECTION_OPEN_SUBMENU); |
| + } |
| } else if (part.type == MenuPart::NONE) { |
| ShowSiblingMenu(source, event.location()); |
| } |