diff options
author | Patrick Scott <phanna@android.com> | 2010-08-02 08:09:31 -0400 |
---|---|---|
committer | Patrick Scott <phanna@android.com> | 2010-08-02 15:28:47 -0400 |
commit | ef1adcdfc805d4d13103f6f15cc5b4d96828a60f (patch) | |
tree | cf24fb4142aa8bd487b7f751c74aa4225967fa47 /WebCore/platform | |
parent | 2e79b71868fcdcd0de7c6070e50662d8fa01e4ab (diff) | |
download | external_webkit-ef1adcdfc805d4d13103f6f15cc5b4d96828a60f.zip external_webkit-ef1adcdfc805d4d13103f6f15cc5b4d96828a60f.tar.gz external_webkit-ef1adcdfc805d4d13103f6f15cc5b4d96828a60f.tar.bz2 |
Enable navigation in scrollable layers.
EventHandler:
* Added IgnoreClipping in order to touch nodes that are clipped
out.
android_graphics:
* Remember the absolute bounds of the node for invals.
RenderBox:
* Fix a compiler warning.
RenderLayer:
* Do not record the entire layer contents unless the scroll
dimensions are larger than the client dimensions.
* Change isSelfPaintingLayer to check for an overflow clip
instead of the scrollable dimensions since it can be too
early to check at this point.
RenderLayerCompositor:
* Same as RenderLayer for checking the overflow clip.
WebViewCore:
* Scroll the containing layer to the node bounds and offset the
mouse position if scrolled. Once the mouse event is processed,
restore the layer to 0,0.
CacheBuilder:
* The body position is no longer used.
* Do not clip out nodes if the layer is scrollable.
CachedFrame:
* Add unadjustBounds to restore adjusted bounds to their original
position (fixed position elements).
* Call unadjustBounds when a node has been found. This new set of
bounds is passed over to WebViewCore to handle clicks.
* Reject empty node bounds.
CachedLayer:
* Document adjustBounds and add unadjustBounds. Add in the scroll
position to the node bounds.
CachedRoot:
* Unadjust the mouse bounds.
WebView:
* Unadjust the mouse bounds and use the absolute bounds of the ring
during inval.
Bug: 1566791
Change-Id: Ia55f2cbb61869087176d3ff61882e40324614c6a
Diffstat (limited to 'WebCore/platform')
-rw-r--r-- | WebCore/platform/graphics/android/LayerAndroid.h | 4 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/android_graphics.cpp | 2 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/android_graphics.h | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/android/LayerAndroid.h b/WebCore/platform/graphics/android/LayerAndroid.h index b74a8c8..712d699 100644 --- a/WebCore/platform/graphics/android/LayerAndroid.h +++ b/WebCore/platform/graphics/android/LayerAndroid.h @@ -135,6 +135,10 @@ public: void setForegroundClip(const SkRect& clip) { m_foregroundClip = clip; } + + // Return the foreground clip offset by the position of the layer. + SkRect foregroundClip() const { return m_foregroundClip; } + bool contentIsScrollable() const; // Returns true if the content position has changed. diff --git a/WebCore/platform/graphics/android/android_graphics.cpp b/WebCore/platform/graphics/android/android_graphics.cpp index fafd3df..a5dafda 100644 --- a/WebCore/platform/graphics/android/android_graphics.cpp +++ b/WebCore/platform/graphics/android/android_graphics.cpp @@ -140,7 +140,9 @@ bool CursorRing::setup() m_rings.clear(); m_rings.append(m_bounds); } + m_absBounds = m_node->bounds(m_frame); m_bounds.inflate(SkScalarCeil(CURSOR_RING_OUTER_DIAMETER)); + m_absBounds.inflate(SkScalarCeil(CURSOR_RING_OUTER_DIAMETER)); if (!m_node->hasCursorRing() || (m_node->isPlugin() && m_node->isFocus())) return false; m_flavor = NORMAL_FLAVOR; diff --git a/WebCore/platform/graphics/android/android_graphics.h b/WebCore/platform/graphics/android/android_graphics.h index dbf1978..46c60e8 100644 --- a/WebCore/platform/graphics/android/android_graphics.h +++ b/WebCore/platform/graphics/android/android_graphics.h @@ -71,6 +71,7 @@ private: WebViewCore* m_viewImpl; // copy for convenience WTF::Vector<IntRect> m_rings; IntRect m_bounds; + IntRect m_absBounds; const CachedRoot* m_root; const CachedFrame* m_frame; const CachedNode* m_node; |