From bcfef7a01ded80ae37e697c12e5e35f3d337ec0c Mon Sep 17 00:00:00 2001
From: "sadrul@chromium.org"
 <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>
Date: Tue, 5 Nov 2013 02:07:46 +0000
Subject: cc: Fix hit-testing in zero-opacity layers.

If a layer that accepts touch or wheel events, but the layer (or one of its
ancestor layers) has zero opacity, then make sure the layer hit-tests correctly.

BUG=295295
R=enne@chromium.org, rbyers@google.com

Review URL: https://codereview.chromium.org/26112002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@232881 0039d316-1c4b-4281-b951-d872f2087c98
---
 cc/layers/draw_properties.h | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

(limited to 'cc/layers/draw_properties.h')

diff --git a/cc/layers/draw_properties.h b/cc/layers/draw_properties.h
index 990b4c97..fffb5a9 100644
--- a/cc/layers/draw_properties.h
+++ b/cc/layers/draw_properties.h
@@ -35,7 +35,8 @@ struct CC_EXPORT DrawProperties {
         index_of_first_descendants_addition(0),
         num_descendants_added(0),
         index_of_first_render_surface_layer_list_addition(0),
-        num_render_surfaces_added(0) {}
+        num_render_surfaces_added(0),
+        skip_drawing(false) {}
 
   // Transforms objects from content space to target surface space, where
   // this layer would be drawn.
@@ -121,6 +122,12 @@ struct CC_EXPORT DrawProperties {
   size_t num_descendants_added;
   size_t index_of_first_render_surface_layer_list_addition;
   size_t num_render_surfaces_added;
+
+  // If the layer is part of a [sub]tree that has a touch/wheel event handler,
+  // then the layer is not skipped during CalculateDrawPropertiesInternal, even
+  // if it does not actually have anything to draw (e.g. zero opacity, or empty
+  // content). This flag is used to keep track of such layers.
+  bool skip_drawing;
 };
 
 }  // namespace cc
-- 
cgit v1.1