summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authoryusufo@chromium.org <yusufo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-08 00:33:34 +0000
committeryusufo@chromium.org <yusufo@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-11-08 00:33:34 +0000
commit23d56bea2a9d000577a8fc7a51776a189a8750e1 (patch)
tree8c7f5e6d5dc5dd609e9826e3c76b06c20dd0c87b /webkit
parent719b781e1977238c141dfbfac732b251b19f5f6e (diff)
downloadchromium_src-23d56bea2a9d000577a8fc7a51776a189a8750e1.zip
chromium_src-23d56bea2a9d000577a8fc7a51776a189a8750e1.tar.gz
chromium_src-23d56bea2a9d000577a8fc7a51776a189a8750e1.tar.bz2
Add touchEventHandlerRegion to Layer and LayerImpl
These will be used to keep track of JavaScript touch event handler on the compositor thread and will be updated accordingly when there is a change involving adding/removing or changing the layout of the nodes that contain the touch event handlers. BUG=135818 Review URL: https://chromiumcodereview.appspot.com/11377013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@166561 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/compositor_bindings/web_layer_impl.cc18
-rw-r--r--webkit/compositor_bindings/web_layer_impl.h2
2 files changed, 20 insertions, 0 deletions
diff --git a/webkit/compositor_bindings/web_layer_impl.cc b/webkit/compositor_bindings/web_layer_impl.cc
index 0fcb74f..9d3f137 100644
--- a/webkit/compositor_bindings/web_layer_impl.cc
+++ b/webkit/compositor_bindings/web_layer_impl.cc
@@ -410,6 +410,24 @@ WebVector<WebRect> WebLayerImpl::nonFastScrollableRegion() const
return result;
}
+void WebLayerImpl::setTouchEventHandlerRegion(const WebVector<WebRect>& rects)
+{
+ cc::Region region;
+ for (size_t i = 0; i < rects.size(); ++i)
+ region.Union(rects[i]);
+ m_layer->setTouchEventHandlerRegion(region);
+
+}
+
+WebVector<WebRect> WebLayerImpl::touchEventHandlerRegion() const
+{
+ cc::Region::Iterator regionRects(m_layer->touchEventHandlerRegion());
+ WebVector<WebRect> result(regionRects.size());
+ for (size_t i = 0; regionRects.has_rect(); regionRects.next(), ++i)
+ result[i] = regionRects.rect();
+ return result;
+}
+
void WebLayerImpl::setIsContainerForFixedPositionLayers(bool enable)
{
m_layer->setIsContainerForFixedPositionLayers(enable);
diff --git a/webkit/compositor_bindings/web_layer_impl.h b/webkit/compositor_bindings/web_layer_impl.h
index 24304b3..639baf1 100644
--- a/webkit/compositor_bindings/web_layer_impl.h
+++ b/webkit/compositor_bindings/web_layer_impl.h
@@ -88,6 +88,8 @@ public:
virtual bool shouldScrollOnMainThread() const;
virtual void setNonFastScrollableRegion(const WebVector<WebRect>&) OVERRIDE;
virtual WebVector<WebRect> nonFastScrollableRegion() const;
+ virtual void setTouchEventHandlerRegion(const WebVector<WebRect>&);
+ virtual WebVector<WebRect> touchEventHandlerRegion() const;
virtual void setIsContainerForFixedPositionLayers(bool) OVERRIDE;
virtual bool isContainerForFixedPositionLayers() const;
virtual void setFixedToContainerLayer(bool) OVERRIDE;