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 3f59112e743250fca4ffda6a3c1bd89243b30788..a5691741d6bcf0feb7f7db94efed47b5c6d94a1e 100644 |
--- a/ui/views/controls/menu/menu_controller.cc |
+++ b/ui/views/controls/menu/menu_controller.cc |
@@ -290,6 +290,7 @@ MenuItemView* MenuController::Run(Widget* parent, |
const gfx::Rect& bounds, |
MenuAnchorPosition position, |
bool context_menu, |
+ bool is_nested_drag, |
int* result_event_flags) { |
exit_type_ = EXIT_NONE; |
possible_drag_ = false; |
@@ -348,9 +349,11 @@ MenuItemView* MenuController::Run(Widget* parent, |
SetSelection(root, SELECTION_OPEN_SUBMENU | SELECTION_UPDATE_IMMEDIATELY); |
if (!blocking_run_) { |
- // Start the timer to hide the menu. This is needed as we get no |
- // notification when the drag has finished. |
- StartCancelAllTimer(); |
+ if (!is_nested_drag) { |
+ // Start the timer to hide the menu. This is needed as we get no |
+ // notification when the drag has finished. |
+ StartCancelAllTimer(); |
+ } |
return NULL; |
} |
@@ -815,6 +818,10 @@ void MenuController::OnWidgetDestroying(Widget* widget) { |
message_loop_->ClearOwner(); |
} |
+bool MenuController::IsCancelAllTimerRunningForTest() { |
+ return cancel_all_timer_.IsRunning(); |
+} |
+ |
// static |
void MenuController::TurnOffMenuSelectionHoldForTest() { |
menu_selection_hold_time_ms = -1; |