Index: ui/aura/window_event_dispatcher.cc |
diff --git a/ui/aura/window_event_dispatcher.cc b/ui/aura/window_event_dispatcher.cc |
index eb08269c95bc94138074385699a928d294916208..e100bc82bdf810db4cb4f4c54445cea0a408144b 100644 |
--- a/ui/aura/window_event_dispatcher.cc |
+++ b/ui/aura/window_event_dispatcher.cc |
@@ -391,8 +391,12 @@ void WindowEventDispatcher::UpdateCapture(Window* old_capture, |
} |
void WindowEventDispatcher::OnOtherRootGotCapture() { |
- // Sending the mouse exit causes bugs on Windows (e.g. crbug.com/394672). |
- // TODO(pkotwicz): Fix the bugs and send mouse exit on Windows too. |
+ // Windows provides the TrackMouseEvents API which allows us to rely on the |
+ // OS to send us the mouse exit events (WM_MOUSELEAVE). Additionally on |
+ // desktop Windows, every top level window could potentially have its own |
+ // root window, in which case this function will get called whenever those |
+ // windows grab mouse capture. Sending mouse exit messages in these cases |
+ // causes subtle bugs like (crbug.com/394672). |
#if !defined(OS_WIN) |
if (mouse_moved_handler_) { |
// Dispatch a mouse exit to reset any state associated with hover. This is |