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 51d18a0b1a43a10a6ce486dac2d2a40ee032d1b5..6a010b5b6fa522187f13ddc95888e116937a7d78 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc |
@@ -2417,11 +2417,11 @@ void RenderWidgetHostViewAura::UpdateCursorIfOverSelf() { |
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 |
@@ -2437,11 +2437,14 @@ void RenderWidgetHostViewAura::UpdateCursorIfOverSelf() { |
window_at_screen_point = screen_win->GetNativeWindowFromHWND( |
hwnd_at_point); |
} |
-#endif |
+ |
if (!window_at_screen_point || |
(window_at_screen_point->GetRootWindow() != root_window)) { |
return; |
} |
+#elif !defined(OS_CHROMEOS) |
+ if (!screen->IsWindowUnderCursor(window_)) |
+ return; |
#endif |
gfx::Point root_window_point = cursor_screen_point; |