| Index: cc/scrollbar_layer.cc
|
| diff --git a/cc/scrollbar_layer.cc b/cc/scrollbar_layer.cc
|
| index 6fad23cb11481dd7b64811a269b10d5fe873779f..d4479061f7525f5a9eece799ee6855e6995a8a39 100644
|
| --- a/cc/scrollbar_layer.cc
|
| +++ b/cc/scrollbar_layer.cc
|
| @@ -17,6 +17,9 @@
|
|
|
| namespace cc {
|
|
|
| +scoped_ptr<WebKit::WebScrollbarThemeGeometry> ScrollbarLayer::s_defaultGeometry;
|
| +bool ScrollbarLayer::s_usesOverlayScrollbars = false;
|
| +
|
| scoped_ptr<LayerImpl> ScrollbarLayer::createLayerImpl(LayerTreeImpl* treeImpl)
|
| {
|
| return ScrollbarLayerImpl::create(treeImpl, id(), ScrollbarGeometryFixedThumb::create(make_scoped_ptr(m_geometry->clone()))).PassAs<LayerImpl>();
|
| @@ -26,21 +29,54 @@ scoped_refptr<ScrollbarLayer> ScrollbarLayer::create(
|
| scoped_ptr<WebKit::WebScrollbar> scrollbar,
|
| scoped_ptr<ScrollbarThemePainter> painter,
|
| scoped_ptr<WebKit::WebScrollbarThemeGeometry> geometry,
|
| + int scrollLayerId, bool isPinchZoomScrollbar)
|
| +{
|
| + return make_scoped_refptr(new ScrollbarLayer(scrollbar.Pass(), painter.Pass(), geometry.Pass(), scrollLayerId, isPinchZoomScrollbar));
|
| +}
|
| +
|
| +scoped_refptr<ScrollbarLayer> ScrollbarLayer::create(
|
| + scoped_ptr<WebKit::WebScrollbar> scrollbar,
|
| + scoped_ptr<ScrollbarThemePainter> painter,
|
| int scrollLayerId)
|
| {
|
| - return make_scoped_refptr(new ScrollbarLayer(scrollbar.Pass(), painter.Pass(), geometry.Pass(), scrollLayerId));
|
| + if (!s_defaultGeometry)
|
| + return make_scoped_refptr(static_cast<ScrollbarLayer*>(0));
|
| + return create(scrollbar.Pass(), painter.Pass(),
|
| + make_scoped_ptr(s_defaultGeometry->clone()).Pass(),
|
| + scrollLayerId, true);
|
| +}
|
| +
|
| +void ScrollbarLayer::setDefaultGeometry(
|
| + WebKit::WebScrollbarThemeGeometry* themeGeometry)
|
| +{
|
| + // We assume themeGeometry is ours to own.
|
| + if (themeGeometry)
|
| + s_defaultGeometry = make_scoped_ptr(themeGeometry);
|
| +}
|
| +
|
| +WebKit::WebScrollbarThemeGeometry* ScrollbarLayer::cloneDefaultGeometry()
|
| +{
|
| + if (s_defaultGeometry)
|
| + return s_defaultGeometry->clone();
|
| + return 0;
|
| +}
|
| +
|
| +void ScrollbarLayer::setDefaultUsesOverlayScrollbars(bool usesOverlayScrollbars)
|
| +{
|
| + s_usesOverlayScrollbars = usesOverlayScrollbars;
|
| }
|
|
|
| ScrollbarLayer::ScrollbarLayer(
|
| scoped_ptr<WebKit::WebScrollbar> scrollbar,
|
| scoped_ptr<ScrollbarThemePainter> painter,
|
| scoped_ptr<WebKit::WebScrollbarThemeGeometry> geometry,
|
| - int scrollLayerId)
|
| + int scrollLayerId, bool isPinchZoomScrollbar)
|
| : m_scrollbar(scrollbar.Pass())
|
| , m_painter(painter.Pass())
|
| , m_geometry(geometry.Pass())
|
| , m_scrollLayerId(scrollLayerId)
|
| , m_textureFormat(GL_INVALID_ENUM)
|
| + , m_isPinchZoomScrollbar(isPinchZoomScrollbar)
|
| {
|
| if (!m_scrollbar->isOverlay())
|
| setShouldScrollOnMainThread(true);
|
| @@ -123,6 +159,8 @@ void ScrollbarLayer::pushPropertiesTo(LayerImpl* layer)
|
| scrollbarLayer->setThumbResourceId(m_thumb->texture()->resourceId());
|
| else
|
| scrollbarLayer->setThumbResourceId(0);
|
| +
|
| + scrollbarLayer->setIsPinchZoomScrollbar(m_isPinchZoomScrollbar);
|
| }
|
|
|
| ScrollbarLayer* ScrollbarLayer::toScrollbarLayer()
|
|
|