| Index: chrome/browser/render_widget_host_view_win.cc | 
| =================================================================== | 
| --- chrome/browser/render_widget_host_view_win.cc	(revision 5147) | 
| +++ chrome/browser/render_widget_host_view_win.cc	(working copy) | 
| @@ -779,25 +779,27 @@ | 
|  | 
| LRESULT RenderWidgetHostViewWin::OnMouseActivate(UINT, WPARAM, LPARAM, | 
| BOOL& handled) { | 
| -  // We handle WM_MOUSEACTIVATE to set focus to the underlying plugin | 
| -  // child window. This is to ensure that keyboard events are received | 
| -  // by the plugin. The correct way to fix this would be send over | 
| -  // an event to the renderer which would then eventually send over | 
| -  // a setFocus call to the plugin widget. This would ensure that | 
| -  // the renderer (webkit) knows about the plugin widget receiving | 
| -  // focus. | 
| -  // TODO(iyengar) Do the right thing as per the above comment. | 
| -  POINT cursor_pos = {0}; | 
| -  ::GetCursorPos(&cursor_pos); | 
| -  MapWindowPoints(m_hWnd, &cursor_pos, 1); | 
| -  HWND child_window = ::RealChildWindowFromPoint(m_hWnd, cursor_pos); | 
| -  if (::IsWindow(child_window)) { | 
| -    ::SetFocus(child_window); | 
| -    return MA_NOACTIVATE; | 
| -  } else { | 
| -    handled = FALSE; | 
| -    return MA_ACTIVATE; | 
| +  HWND focus_window = GetFocus(); | 
| +  if (!::IsWindow(focus_window) || !IsChild(focus_window)) { | 
| +    // We handle WM_MOUSEACTIVATE to set focus to the underlying plugin | 
| +    // child window. This is to ensure that keyboard events are received | 
| +    // by the plugin. The correct way to fix this would be send over | 
| +    // an event to the renderer which would then eventually send over | 
| +    // a setFocus call to the plugin widget. This would ensure that | 
| +    // the renderer (webkit) knows about the plugin widget receiving | 
| +    // focus. | 
| +    // TODO(iyengar) Do the right thing as per the above comment. | 
| +    POINT cursor_pos = {0}; | 
| +    ::GetCursorPos(&cursor_pos); | 
| +    ::ScreenToClient(m_hWnd, &cursor_pos); | 
| +    HWND child_window = ::RealChildWindowFromPoint(m_hWnd, cursor_pos); | 
| +    if (::IsWindow(child_window)) { | 
| +      ::SetFocus(child_window); | 
| +      return MA_NOACTIVATE; | 
| +    } | 
| } | 
| +  handled = FALSE; | 
| +  return MA_ACTIVATE; | 
| } | 
|  | 
| LRESULT RenderWidgetHostViewWin::OnGetObject(UINT message, WPARAM wparam, | 
|  |