diff options
author | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-04 18:42:39 +0000 |
---|---|---|
committer | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-04 18:42:39 +0000 |
commit | ff0e9dd534fb2cdd8eb92109868a8d6a4dd6d98f (patch) | |
tree | c1e3440d5b38e0cab3064f098cc299fbf44fea96 | |
parent | 995d6e53da518b7b51f249a93ce9aac6fbc6d82f (diff) | |
download | chromium_src-ff0e9dd534fb2cdd8eb92109868a8d6a4dd6d98f.zip chromium_src-ff0e9dd534fb2cdd8eb92109868a8d6a4dd6d98f.tar.gz chromium_src-ff0e9dd534fb2cdd8eb92109868a8d6a4dd6d98f.tar.bz2 |
Merge 261465 "Force software layer to redraw when it is resized."
> Force software layer to redraw when it is resized.
>
> Consider the following sequence of events:
> 1. The view is initialized with a size of 0x0
> 2. A frame comes in at a size of 50x50. Nothing is drawn.
> 3. The view is resized to 50x50.
>
> We should re-draw the full frame at step 3, but we don't. This patch
> makes it so that we do.
>
> BUG=358450
>
> Review URL: https://codereview.chromium.org/217283006
TBR=ccameron@chromium.org
Review URL: https://codereview.chromium.org/226343003
git-svn-id: svn://svn.chromium.org/chrome/branches/1916/src@261802 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | content/browser/renderer_host/render_widget_host_view_mac.mm | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm index 2138a3b..a155365 100644 --- a/content/browser/renderer_host/render_widget_host_view_mac.mm +++ b/content/browser/renderer_host/render_widget_host_view_mac.mm @@ -2267,7 +2267,12 @@ void RenderWidgetHostViewMac::LayoutLayers() { // in the layer being anchored to the top-left. Set the layer's frame // explicitly, since this is more reliable in practice. if (software_layer_) { - [software_layer_ setFrame:new_background_frame]; + bool frame_changed = !CGRectEqualToRect( + new_background_frame, [software_layer_ frame]); + if (frame_changed) { + [software_layer_ setFrame:new_background_frame]; + [software_layer_ setNeedsDisplay]; + } } } |