Index: content/browser/renderer_host/render_widget_host_impl.cc |
=================================================================== |
--- content/browser/renderer_host/render_widget_host_impl.cc (revision 126512) |
+++ content/browser/renderer_host/render_widget_host_impl.cc (working copy) |
@@ -120,6 +120,7 @@ |
surface_id_(0), |
is_loading_(false), |
is_hidden_(false), |
+ is_fullscreen_(false), |
is_accelerated_compositing_active_(false), |
repaint_ack_pending_(false), |
resize_ack_pending_(false), |
@@ -425,21 +426,26 @@ |
#endif |
gfx::Size new_size(view_bounds.size()); |
+ bool was_fullscreen = is_fullscreen_; |
+ is_fullscreen_ = IsFullscreen(); |
+ bool fullscreen_changed = was_fullscreen != is_fullscreen_; |
+ bool size_changed = new_size != current_size_; |
+ |
// Avoid asking the RenderWidget to resize to its current size, since it |
// won't send us a PaintRect message in that case. |
- if (new_size == current_size_) |
+ if (!size_changed && !fullscreen_changed) |
return; |
- if (in_flight_size_ != gfx::Size() && new_size == in_flight_size_) { |
+ if (in_flight_size_ != gfx::Size() && new_size == in_flight_size_ && |
+ !fullscreen_changed) |
return; |
- } |
// We don't expect to receive an ACK when the requested size is empty. |
- if (!new_size.IsEmpty()) |
+ if (!new_size.IsEmpty() && size_changed) |
resize_ack_pending_ = true; |
if (!Send(new ViewMsg_Resize(routing_id_, new_size, |
- GetRootWindowResizerRect(), IsFullscreen()))) { |
+ GetRootWindowResizerRect(), is_fullscreen_))) { |
resize_ack_pending_ = false; |
} else { |
in_flight_size_ = new_size; |