Index: ui/views/win/hwnd_message_handler.cc |
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc |
index 396184e3b54e73032003d7a379df91af3298b42c..fd50cadfd8265b8caba7415517ca18e2a8bd890e 100644 |
--- a/ui/views/win/hwnd_message_handler.cc |
+++ b/ui/views/win/hwnd_message_handler.cc |
@@ -388,6 +388,7 @@ HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate) |
layered_alpha_(255), |
waiting_for_redraw_layered_window_contents_(false), |
is_first_nccalc_(true), |
+ menu_depth_(0), |
autohide_factory_(this), |
id_generator_(0) { |
} |
@@ -1367,6 +1368,11 @@ LRESULT HWNDMessageHandler::OnDwmCompositionChanged(UINT msg, |
return 0; |
} |
+void HWNDMessageHandler::OnEnterMenuLoop(BOOL from_track_popup_menu) { |
+ if (menu_depth_++ == 0) |
+ delegate_->HandleMenuLoop(true); |
+} |
+ |
void HWNDMessageHandler::OnEnterSizeMove() { |
delegate_->HandleBeginWMSizeMove(); |
SetMsgHandled(FALSE); |
@@ -1377,6 +1383,12 @@ LRESULT HWNDMessageHandler::OnEraseBkgnd(HDC dc) { |
return 1; |
} |
+void HWNDMessageHandler::OnExitMenuLoop(BOOL is_shortcut_menu) { |
+ if (--menu_depth_ == 0) |
+ delegate_->HandleMenuLoop(false); |
+ DCHECK_GE(0, menu_depth_); |
+} |
+ |
void HWNDMessageHandler::OnExitSizeMove() { |
delegate_->HandleEndWMSizeMove(); |
SetMsgHandled(FALSE); |