diff options
author | Cary Clark <cary@android.com> | 2010-09-29 16:37:54 -0400 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2010-10-18 16:58:53 -0400 |
commit | a34b1107b2542fa334fd4db2d58e2df849e083b0 (patch) | |
tree | 1c85c319832b2e8314c127f022def0eecc02080e /WebCore/dom/Document.idl | |
parent | e949efd529b667054f1e2abdda96995d6656b2b5 (diff) | |
download | external_webkit-a34b1107b2542fa334fd4db2d58e2df849e083b0.zip external_webkit-a34b1107b2542fa334fd4db2d58e2df849e083b0.tar.gz external_webkit-a34b1107b2542fa334fd4db2d58e2df849e083b0.tar.bz2 |
compute cursor rings when layers are transparent
Google search suggestions are drawn in a popup
menu (a div with a small amount of transparency).
This can partially or complete obscure links underneath the popup,
and can present touchable targets which may be much larger than
the text contained by the link.
CachedRoot::checkRings() determines if a larger bounding box
can be used for the ring around the link.
CachedRoot::maskIfHidden() determines if the ring needs to be
cut down in size because it is only partially visible, or fully
obscured.
Both routines share the implementation that gathers information
about the link, which uses RingCanvas to parse the picture, and
RingCheck to build layers describing the text and rectangles
drawn in the area around the ring.
The basic strategy is to find the text contained by the link
under consideration, and see if subsequent drawing obscures the
text, or if other text would be enclosed by enlarging the ring.
Since maskIfHidden() works better now than before, this CL
enabled checking for hidden links when recomputing the current
selection after the picture updates.
It also checks to see if the link can be larger when
maskIfHidden() determines that it is unclipped.
Also, if a tap is inside the larger ring, but not on the text
itself, treat that as a valid hit. (In CachedFrame::findBestHitAt)
And, this fixes CacheBuilder debugging code, and the CacheBuilder
array crasher described by bug: 3043268
bug: 2661613
Change-Id: I751f6539f6c840889a58de8c4611364442b3e37c
Diffstat (limited to 'WebCore/dom/Document.idl')
0 files changed, 0 insertions, 0 deletions