Index: chrome/browser/renderer_host/render_widget_host_view_win.cc |
diff --git a/chrome/browser/renderer_host/render_widget_host_view_win.cc b/chrome/browser/renderer_host/render_widget_host_view_win.cc |
index 1bf84216365e2f8e01ef4d9db8a082c84a98c022..d172ea40515144bba6eb87905ffd89d606b20f1e 100644 |
--- a/chrome/browser/renderer_host/render_widget_host_view_win.cc |
+++ b/chrome/browser/renderer_host/render_widget_host_view_win.cc |
@@ -386,6 +386,29 @@ void RenderWidgetHostViewWin::SetSize(const gfx::Size& size) { |
EnsureTooltip(); |
} |
+void RenderWidgetHostViewWin::MoveTo(const gfx::Point& point) { |
+ if (is_hidden_) |
+ return; |
+ |
+ // No SWP_NOREDRAW as autofill popups can move and the underneath window |
+ // should redraw in that case. |
+ UINT swp_flags = SWP_NOSENDCHANGING | SWP_NOOWNERZORDER | SWP_NOCOPYBITS | |
+ SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_DEFERERASE; |
+ CRect window_rect; |
+ GetWindowRect(&window_rect); |
+ int x = point.x() - window_rect.left; |
+ int y = point.y() - window_rect.top; |
+ SetWindowPos(NULL, x, y, window_rect.Width(), window_rect.Height(), |
+ swp_flags); |
+ if (compositor_host_window_) { |
+ ::SetWindowPos(compositor_host_window_, |
+ NULL, |
+ x, y, |
+ window_rect.Width(), window_rect.Height(), |
+ SWP_NOSENDCHANGING | SWP_NOCOPYBITS | SWP_NOZORDER | SWP_NOACTIVATE); |
+ } |
+} |
+ |
gfx::NativeView RenderWidgetHostViewWin::GetNativeView() { |
return m_hWnd; |
} |