Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Unified Diff: Source/web/PinchViewports.cpp

Issue 19019004: Set root clip layer not to maskToBounds. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Another ClipLayer rename Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/web/PinchViewports.h ('k') | public/platform/WebLayerTreeView.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/web/PinchViewports.cpp
diff --git a/Source/web/PinchViewports.cpp b/Source/web/PinchViewports.cpp
index 9f9f06a19c2ba39962a2706dbf21bf815dd140fd..4e612b0de91f269034b3a727973577cc912eb28a 100644
--- a/Source/web/PinchViewports.cpp
+++ b/Source/web/PinchViewports.cpp
@@ -53,29 +53,32 @@ PassOwnPtr<PinchViewports> PinchViewports::create(WebViewImpl* owner)
PinchViewports::PinchViewports(WebViewImpl* owner)
: m_owner(owner)
- , m_innerViewportClipLayer(GraphicsLayer::create(m_owner->graphicsLayerFactory(), this))
+ , m_innerViewportContainerLayer(GraphicsLayer::create(m_owner->graphicsLayerFactory(), this))
, m_pageScaleLayer(GraphicsLayer::create(m_owner->graphicsLayerFactory(), this))
, m_innerViewportScrollLayer(GraphicsLayer::create(m_owner->graphicsLayerFactory(), this))
, m_overlayScrollbarHorizontal(GraphicsLayer::create(m_owner->graphicsLayerFactory(), this))
, m_overlayScrollbarVertical(GraphicsLayer::create(m_owner->graphicsLayerFactory(), this))
{
- m_innerViewportClipLayer->setMasksToBounds(true);
- m_innerViewportClipLayer->platformLayer()->setIsContainerForFixedPositionLayers(true);
+ m_innerViewportContainerLayer->platformLayer()->setIsContainerForFixedPositionLayers(true);
+ // No need for the inner viewport to clip, since the compositing
+ // surface takes care of it -- and clipping here would interfere with
+ // dynamically-sized viewports on Android.
+ m_innerViewportContainerLayer->setMasksToBounds(false);
m_innerViewportScrollLayer->platformLayer()->setScrollable(true);
#ifndef NDEBUG
- m_innerViewportClipLayer->setName("inner viewport clip layer");
+ m_innerViewportContainerLayer->setName("inner viewport container layer");
m_pageScaleLayer->setName("page scale layer");
m_innerViewportScrollLayer->setName("inner viewport scroll layer");
m_overlayScrollbarHorizontal->setName("overlay scrollbar horizontal");
m_overlayScrollbarVertical->setName("overlay scrollbar vertical");
#endif
- m_innerViewportClipLayer->addChild(m_pageScaleLayer.get());
+ m_innerViewportContainerLayer->addChild(m_pageScaleLayer.get());
m_pageScaleLayer->addChild(m_innerViewportScrollLayer.get());
- m_innerViewportClipLayer->addChild(m_overlayScrollbarHorizontal.get());
- m_innerViewportClipLayer->addChild(m_overlayScrollbarVertical.get());
+ m_innerViewportContainerLayer->addChild(m_overlayScrollbarHorizontal.get());
+ m_innerViewportContainerLayer->addChild(m_overlayScrollbarVertical.get());
// Setup the inner viewport overlay scrollbars.
setupScrollbar(WebScrollbar::Horizontal);
@@ -86,7 +89,7 @@ PinchViewports::~PinchViewports() { }
void PinchViewports::setViewportSize(const WebCore::IntSize& newSize)
{
- m_innerViewportClipLayer->setSize(newSize);
+ m_innerViewportContainerLayer->setSize(newSize);
// Need to re-compute sizes for the overlay scrollbars.
setupScrollbar(WebScrollbar::Horizontal);
@@ -97,11 +100,11 @@ void PinchViewports::setViewportSize(const WebCore::IntSize& newSize)
// the inner/outer viewport fixed-position model for pinch zoom. When finished,
// the tree will look like this (with * denoting added layers):
//
-// *innerViewportClipLayer (fixed pos container)
+// *innerViewportContainerLayer (fixed pos container)
// +- *pageScaleLayer
// | +- *innerViewportScrollLayer
// | +-- overflowControlsHostLayer (root layer)
-// | +-- outerViewportClipLayer (fixed pos container) [frame clip layer in RenderLayerCompositor]
+// | +-- outerViewportContainerLayer (fixed pos container) [frame container layer in RenderLayerCompositor]
// | | +-- outerViewportScrollLayer [frame scroll layer in RenderLayerCompositor]
// | | +-- content layers ...
// | +-- horizontal ScrollbarLayer (non-overlay)
@@ -142,10 +145,10 @@ void PinchViewports::setupScrollbar(WebScrollbar::Orientation orientation)
const int overlayScrollbarThickness = m_owner->settingsImpl()->pinchOverlayScrollbarThickness();
- int xPosition = isHorizontal ? 0 : m_innerViewportClipLayer->size().width() - overlayScrollbarThickness;
- int yPosition = isHorizontal ? m_innerViewportClipLayer->size().height() - overlayScrollbarThickness : 0;
- int width = isHorizontal ? m_innerViewportClipLayer->size().width() - overlayScrollbarThickness : overlayScrollbarThickness;
- int height = isHorizontal ? overlayScrollbarThickness : m_innerViewportClipLayer->size().height() - overlayScrollbarThickness;
+ int xPosition = isHorizontal ? 0 : m_innerViewportContainerLayer->size().width() - overlayScrollbarThickness;
+ int yPosition = isHorizontal ? m_innerViewportContainerLayer->size().height() - overlayScrollbarThickness : 0;
+ int width = isHorizontal ? m_innerViewportContainerLayer->size().width() - overlayScrollbarThickness : overlayScrollbarThickness;
+ int height = isHorizontal ? overlayScrollbarThickness : m_innerViewportContainerLayer->size().height() - overlayScrollbarThickness;
scrollbarGraphicsLayer->setPosition(WebCore::IntPoint(xPosition, yPosition));
scrollbarGraphicsLayer->setSize(WebCore::IntSize(width, height));
@@ -159,7 +162,7 @@ void PinchViewports::registerViewportLayersWithTreeView(WebLayerTreeView* layerT
WebCore::RenderLayerCompositor* compositor = m_owner->compositor();
ASSERT(compositor);
layerTreeView->registerPinchViewportLayers(
- m_innerViewportClipLayer->platformLayer(),
+ m_innerViewportContainerLayer->platformLayer(),
m_pageScaleLayer->platformLayer(),
m_innerViewportScrollLayer->platformLayer(),
compositor->scrollLayer()->platformLayer(),
« no previous file with comments | « Source/web/PinchViewports.h ('k') | public/platform/WebLayerTreeView.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698