| Index: content/browser/web_contents/web_contents_view_mac.mm
|
| diff --git a/content/browser/web_contents/web_contents_view_mac.mm b/content/browser/web_contents/web_contents_view_mac.mm
|
| index 39e579baec2e64258a39bf4110eb15ffda57f3d5..48d3cca1f447090e362f2608bd11f5faf7ada872 100644
|
| --- a/content/browser/web_contents/web_contents_view_mac.mm
|
| +++ b/content/browser/web_contents/web_contents_view_mac.mm
|
| @@ -82,8 +82,7 @@ WebContentsViewMac::WebContentsViewMac(WebContentsImpl* web_contents,
|
| : web_contents_(web_contents),
|
| delegate_(delegate),
|
| allow_overlapping_views_(false),
|
| - overlay_view_(NULL),
|
| - underlay_view_(NULL) {
|
| + allow_other_views_(false) {
|
| }
|
|
|
| WebContentsViewMac::~WebContentsViewMac() {
|
| @@ -278,52 +277,19 @@ bool WebContentsViewMac::GetAllowOverlappingViews() const {
|
| return allow_overlapping_views_;
|
| }
|
|
|
| -void WebContentsViewMac::SetOverlayView(
|
| - WebContentsView* overlay, const gfx::Point& offset) {
|
| - DCHECK(!underlay_view_);
|
| - if (overlay_view_)
|
| - RemoveOverlayView();
|
| -
|
| - overlay_view_ = static_cast<WebContentsViewMac*>(overlay);
|
| - DCHECK(!overlay_view_->overlay_view_);
|
| - overlay_view_->underlay_view_ = this;
|
| - overlay_view_offset_ = offset;
|
| - UpdateRenderWidgetHostViewOverlay();
|
| -}
|
| -
|
| -void WebContentsViewMac::RemoveOverlayView() {
|
| - DCHECK(overlay_view_);
|
| +void WebContentsViewMac::SetAllowOtherViews(bool allow) {
|
| + if (allow_other_views_ == allow)
|
| + return;
|
|
|
| - RenderWidgetHostViewMac* rwhv = static_cast<RenderWidgetHostViewMac*>(
|
| + allow_other_views_ = allow;
|
| + RenderWidgetHostViewMac* view = static_cast<RenderWidgetHostViewMac*>(
|
| web_contents_->GetRenderWidgetHostView());
|
| - if (rwhv)
|
| - rwhv->RemoveOverlayView();
|
| -
|
| - overlay_view_->underlay_view_ = NULL;
|
| - overlay_view_ = NULL;
|
| + if (view)
|
| + view->SetAllowPauseForResizeOrRepaint(!allow_other_views_);
|
| }
|
|
|
| -void WebContentsViewMac::UpdateRenderWidgetHostViewOverlay() {
|
| - RenderWidgetHostViewMac* rwhv = static_cast<RenderWidgetHostViewMac*>(
|
| - web_contents_->GetRenderWidgetHostView());
|
| - if (!rwhv)
|
| - return;
|
| -
|
| - if (overlay_view_) {
|
| - RenderWidgetHostViewMac* overlay_rwhv =
|
| - static_cast<RenderWidgetHostViewMac*>(
|
| - overlay_view_->web_contents_->GetRenderWidgetHostView());
|
| - if (overlay_rwhv)
|
| - rwhv->SetOverlayView(overlay_rwhv, overlay_view_offset_);
|
| - }
|
| -
|
| - if (underlay_view_) {
|
| - RenderWidgetHostViewMac* underlay_rwhv =
|
| - static_cast<RenderWidgetHostViewMac*>(
|
| - underlay_view_->web_contents_->GetRenderWidgetHostView());
|
| - if (underlay_rwhv)
|
| - underlay_rwhv->SetOverlayView(rwhv, underlay_view_->overlay_view_offset_);
|
| - }
|
| +bool WebContentsViewMac::GetAllowOtherViews() const {
|
| + return allow_other_views_;
|
| }
|
|
|
| void WebContentsViewMac::CreateView(
|
| @@ -356,6 +322,7 @@ RenderWidgetHostViewBase* WebContentsViewMac::CreateViewForWidget(
|
| view->SetDelegate(rw_delegate.get());
|
| }
|
| view->SetAllowOverlappingViews(allow_overlapping_views_);
|
| + view->SetAllowPauseForResizeOrRepaint(!allow_other_views_);
|
|
|
| // Fancy layout comes later; for now just make it our size and resize it
|
| // with us. In case there are other siblings of the content area, we want
|
| @@ -397,7 +364,6 @@ void WebContentsViewMac::RenderViewCreated(RenderViewHost* host) {
|
| }
|
|
|
| void WebContentsViewMac::RenderViewSwappedIn(RenderViewHost* host) {
|
| - UpdateRenderWidgetHostViewOverlay();
|
| }
|
|
|
| void WebContentsViewMac::SetOverscrollControllerEnabled(bool enabled) {
|
|
|