Index: content/browser/renderer_host/render_widget_host_view_aura.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc |
index f978056c130659c4d8c3fa595dd391c8dea1960b..fd50cf54b0e64c354ee490b338f5a2f6b720747a 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
@@ -2435,11 +2435,11 @@ |
gfx::Point cursor_screen_point = screen->GetCursorScreenPoint(); |
-#if !defined(OS_CHROMEOS) |
+#if defined(OS_WIN) |
// Ignore cursor update messages if the window under the cursor is not us. |
aura::Window* window_at_screen_point = screen->GetWindowAtScreenPoint( |
cursor_screen_point); |
-#if defined(OS_WIN) |
+ |
// On Windows we may fail to retrieve the aura Window at the current cursor |
// position. This is because the WindowFromPoint API may return the legacy |
// window which is not associated with an aura Window. In this case we need |
@@ -2455,12 +2455,15 @@ |
window_at_screen_point = screen_win->GetNativeWindowFromHWND( |
hwnd_at_point); |
} |
-#endif // defined(OS_WIN) |
+ |
if (!window_at_screen_point || |
(window_at_screen_point->GetRootWindow() != root_window)) { |
return; |
} |
-#endif // !defined(OS_CHROMEOS) |
+#elif !defined(OS_CHROMEOS) |
+ if (!screen->IsWindowUnderCursor(window_)) |
+ return; |
+#endif |
gfx::Point root_window_point = cursor_screen_point; |
aura::client::ScreenPositionClient* screen_position_client = |