Index: Source/core/layout/HitTestRequest.h |
diff --git a/Source/core/layout/HitTestRequest.h b/Source/core/layout/HitTestRequest.h |
index d9e937e1c31b2ab2a7830e2ab721976775951c72..906791178eeeef68002c265d4f348a2722c00d6f 100644 |
--- a/Source/core/layout/HitTestRequest.h |
+++ b/Source/core/layout/HitTestRequest.h |
@@ -46,6 +46,7 @@ public: |
// When using list-based testing, this flag causes us to continue hit |
// testing after a hit has been found. |
PenetratingList = 1 << 12, |
+ AvoidCache = 1 << 13, |
}; |
typedef unsigned HitTestRequestType; |
@@ -69,12 +70,23 @@ public: |
bool ignorePointerEventsNone() const { return m_requestType & IgnorePointerEventsNone; } |
bool listBased() const { return m_requestType & ListBased; } |
bool penetratingList() const { return m_requestType & PenetratingList; } |
+ bool avoidCache() const { return m_requestType & AvoidCache; } |
// Convenience functions |
bool touchMove() const { return move() && touchEvent(); } |
HitTestRequestType type() const { return m_requestType; } |
+ // The Cacheability bits don't affect hit testing computation. |
+ // TODO(dtapuska): These bits really shouldn't be fields on the HitTestRequest as |
+ // they don't influence the result; but rather are hints on the output as to what to do. |
+ // Perhaps move these fields to another enum ? |
+ static const HitTestRequestType CacheabilityBits = ReadOnly | Active | Move | Release | TouchEvent; |
+ bool equalForCacheability(const HitTestRequest& value) const |
+ { |
+ return (m_requestType | CacheabilityBits) == (value.m_requestType | CacheabilityBits); |
+ } |
+ |
private: |
HitTestRequestType m_requestType; |
}; |