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 796ecc37ff4dff318d76855eae6d57a06b262eb3..d1547c41a8c3d4aaec0de657a595a2777328e742 100644 |
--- a/ui/views/controls/menu/menu_controller.cc |
+++ b/ui/views/controls/menu/menu_controller.cc |
@@ -434,6 +434,10 @@ MenuItemView* MenuController::Run(Widget* parent, |
// Set exit_all_, which makes sure all nested loops exit immediately. |
if (exit_type_ != EXIT_DESTROYED) |
SetExitType(EXIT_ALL); |
+ } else if (exit_type_ != EXIT_NONE && message_loop_depth_) { |
+ // If we're closing all menus, also mark the next topmost menu |
+ // message loop for termination, so that we'll unwind fully. |
+ TerminateNestedMessageLoop(); |
} |
} |