Fix rendering of off-screen popup windows (issue #1437).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@1910 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt 2014-11-18 19:29:26 +00:00
parent 03e5cd14d3
commit 5389b98085
1 changed files with 8 additions and 8 deletions

View File

@ -154,12 +154,8 @@ CefRenderWidgetHostViewOSR::CefRenderWidgetHostViewOSR(
#endif #endif
compositor_->SetRootLayer(root_layer_.get()); compositor_->SetRootLayer(root_layer_.get());
if (browser_impl_.get()) { if (browser_impl_.get())
SetFrameRate();
ResizeRootLayer(); ResizeRootLayer();
compositor_->SetScaleAndSize(CurrentDeviceScaleFactor(),
root_layer_->bounds().size());
}
} }
CefRenderWidgetHostViewOSR::~CefRenderWidgetHostViewOSR() { CefRenderWidgetHostViewOSR::~CefRenderWidgetHostViewOSR() {
@ -325,10 +321,7 @@ void CefRenderWidgetHostViewOSR::InitAsPopup(
browser_impl_->GetClient()->GetRenderHandler()->OnPopupSize( browser_impl_->GetClient()->GetRenderHandler()->OnPopupSize(
browser_impl_.get(), widget_pos); browser_impl_.get(), widget_pos);
SetFrameRate();
ResizeRootLayer(); ResizeRootLayer();
compositor_->SetScaleAndSize(scale_factor, root_layer_->bounds().size());
WasShown(); WasShown();
} }
@ -806,12 +799,19 @@ void CefRenderWidgetHostViewOSR::SetFrameRate() {
} }
void CefRenderWidgetHostViewOSR::ResizeRootLayer() { void CefRenderWidgetHostViewOSR::ResizeRootLayer() {
SetFrameRate();
gfx::Size size; gfx::Size size;
if (!IsPopupWidget()) if (!IsPopupWidget())
size = GetViewBounds().size(); size = GetViewBounds().size();
else else
size = popup_position_.size(); size = popup_position_.size();
if (size == root_layer_->bounds().size())
return;
root_layer_->SetBounds(gfx::Rect(0, 0, size.width(), size.height())); root_layer_->SetBounds(gfx::Rect(0, 0, size.width(), size.height()));
compositor_->SetScaleAndSize(CurrentDeviceScaleFactor(), size);
} }
void CefRenderWidgetHostViewOSR::GenerateFrame(bool force_frame) { void CefRenderWidgetHostViewOSR::GenerateFrame(bool force_frame) {