diff options
author | John Reck <jreck@google.com> | 2011-09-18 11:03:03 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2011-09-19 10:43:51 -0700 |
commit | 73b4552f8e4e89529f6f44378b80a31f764c1377 (patch) | |
tree | eed181a1da8f3ca74df659b676ef07b2b4b99311 /Source/WebKit/android/nav | |
parent | 03b9ea031a98d99f5b10bf6edd5d11b9dcdb80eb (diff) | |
download | external_webkit-73b4552f8e4e89529f6f44378b80a31f764c1377.zip external_webkit-73b4552f8e4e89529f6f44378b80a31f764c1377.tar.gz external_webkit-73b4552f8e4e89529f6f44378b80a31f764c1377.tar.bz2 |
We be GL ringing it all over them layers
Bug: 5333083
Change-Id: Ia2b03d8d9e0167d06f8a900152e25e66372acd59
Diffstat (limited to 'Source/WebKit/android/nav')
-rw-r--r-- | Source/WebKit/android/nav/WebView.cpp | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/Source/WebKit/android/nav/WebView.cpp b/Source/WebKit/android/nav/WebView.cpp index a528e9a..1651de6 100644 --- a/Source/WebKit/android/nav/WebView.cpp +++ b/Source/WebKit/android/nav/WebView.cpp @@ -489,8 +489,23 @@ bool drawGL(WebCore::IntRect& viewRect, WebCore::IntRect* invalRect, WebCore::In m_glWebViewState->resetRings(); if (extra) { if (extra == &m_ring) { + WTF::Vector<IntRect> rings; if (root == m_ring.m_frame) - m_glWebViewState->setRings(m_ring.rings(), m_ring.m_isPressed); + rings = m_ring.rings(); + else { + // TODO: Fix the navcache to work with layers correctly + // In the meantime, this works around the bug. However, the rings + // it produces are not as nice for some reason, thus we use + // m_ring.rings() above for the base layer instead of the below + for (size_t i = 0; i < m_ring.m_node->rings().size(); i++) { + IntRect rect = m_ring.m_node->rings().at(i); + rect = m_ring.m_frame->adjustBounds(m_ring.m_node, rect); + rect.inflate(4); + rings.append(rect); + } + } + m_glWebViewState->setRings(rings, m_ring.m_isPressed); + extra = 0; } else { LayerAndroid mainPicture(m_navPictureUI); PictureSet* content = m_baseLayer->content(); |