summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-04 18:42:39 +0000
committerccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-04 18:42:39 +0000
commitff0e9dd534fb2cdd8eb92109868a8d6a4dd6d98f (patch)
treec1e3440d5b38e0cab3064f098cc299fbf44fea96
parent995d6e53da518b7b51f249a93ce9aac6fbc6d82f (diff)
downloadchromium_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.mm7
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];
+ }
}
}