diff options
author | alekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-24 19:23:26 +0000 |
---|---|---|
committer | alekseys@chromium.org <alekseys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-11-24 19:23:26 +0000 |
commit | 826fa729e3763314e75a8391af8b7ca50f3aa573 (patch) | |
tree | 1eb510da8861e87850e749a15a6caead51129d3d | |
parent | 602627ccfcedd1183fa558a89ade93e9b8c4416a (diff) | |
download | chromium_src-826fa729e3763314e75a8391af8b7ca50f3aa573.zip chromium_src-826fa729e3763314e75a8391af8b7ca50f3aa573.tar.gz chromium_src-826fa729e3763314e75a8391af8b7ca50f3aa573.tar.bz2 |
Update renderer's resize corner rect cached in RenderWidgetHost only on resize ack.
BUG=64113
TEST=browser_tests should pass.
Review URL: http://codereview.chromium.org/5368001
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@67292 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/chrome/browser/renderer_host/render_widget_host.cc b/chrome/browser/renderer_host/render_widget_host.cc index 7f84227..7e6f2ce 100644 --- a/chrome/browser/renderer_host/render_widget_host.cc +++ b/chrome/browser/renderer_host/render_widget_host.cc @@ -263,11 +263,7 @@ void RenderWidgetHost::WasRestored() { // could handle both the restore and resize at once. This isn't that big a // deal as RenderWidget::WasRestored delays updating, so that the resize from // WasResized is usually processed before the renderer is painted. - // - // NOTE: This is disabled on Mac because of 64113. -#if !defined(OS_MACOSX) WasResized(); -#endif } void RenderWidgetHost::WasResized() { @@ -304,6 +300,8 @@ void RenderWidgetHost::WasResized() { // Message was sent successfully, but we do not expect to receive an ACK, // so update current values right away. current_size_ = new_size; + // TODO(alekseys): send a message from renderer to ack a reserved rect + // changes only. current_reserved_rect_ = reserved_rect; } } @@ -803,7 +801,6 @@ void RenderWidgetHost::OnMsgUpdateRect( // Update our knowledge of the RenderWidget's size. current_size_ = params.view_size; - current_reserved_rect_ = params.resizer_rect; bool is_resize_ack = ViewHostMsg_UpdateRect_Flags::is_resize_ack(params.flags); @@ -815,6 +812,13 @@ void RenderWidgetHost::OnMsgUpdateRect( resize_ack_pending_ = false; in_flight_size_.SetSize(0, 0); in_flight_reserved_rect_.SetRect(0, 0, 0, 0); + // Update our knowledge of the RenderWidget's resizer rect. + // ViewMsg_Resize is acknowledged only when view size is actually changed, + // otherwise current_reserved_rect_ is updated immediately after sending + // ViewMsg_Resize to the RenderWidget and can be clobbered by + // OnMsgUpdateRect called for a paint that was initiated before the resize + // message was sent. + current_reserved_rect_ = params.resizer_rect; } bool is_repaint_ack = |