From 3aa3fc5b4d5035705efc875f74d8378ec75e54db Mon Sep 17 00:00:00 2001 From: Cary Clark Date: Wed, 2 Dec 2009 12:12:19 -0500 Subject: skip nodes when building nav cache if parents are clipped out This is a fairly conservative fix, since it actually checks to see if a parent element is clipped out, rather than the bounds of the element itself. fixes http://b/2291936 --- WebKit/android/nav/CacheBuilder.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'WebKit/android') diff --git a/WebKit/android/nav/CacheBuilder.cpp b/WebKit/android/nav/CacheBuilder.cpp index 58be0e8..c77f7fc 100644 --- a/WebKit/android/nav/CacheBuilder.cpp +++ b/WebKit/android/nav/CacheBuilder.cpp @@ -1194,10 +1194,14 @@ void CacheBuilder::BuildFrame(Frame* root, Frame* frame, clip.intersect(parentClip); hasClip = true; } - if (hasClip && !clip.isEmpty() && cachedNode.clip(clip) == false) { - cachedNode.setBounds(clip); - cachedNode.cursorRings().append(clip); - isUnclipped = true; + if (hasClip) { + if (clip.isEmpty()) + continue; // skip this node if completely clipped out + else if (cachedNode.clip(clip) == false) { + cachedNode.setBounds(clip); + cachedNode.cursorRings().append(clip); + isUnclipped = true; + } } cachedNode.setNavableRects(); cachedNode.setChildFrameIndex(-1); -- cgit v1.1