diff options
author | Cary Clark <cary@android.com> | 2009-10-21 13:59:54 -0400 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2009-10-21 13:59:54 -0400 |
commit | 3efa919a7f16fdb717e393f501c50d4844ffaed5 (patch) | |
tree | 0a41b8c8f4cbd79115e56060b4c827720fc8d29f /WebKit/android/nav/WebView.cpp | |
parent | b2b357d86298bbd50e3dee2bc7cc1f48ce6d57a0 (diff) | |
download | external_webkit-3efa919a7f16fdb717e393f501c50d4844ffaed5.zip external_webkit-3efa919a7f16fdb717e393f501c50d4844ffaed5.tar.gz external_webkit-3efa919a7f16fdb717e393f501c50d4844ffaed5.tar.bz2 |
fix multiple text areas, and text areas without focus rings
Separate nodes that are hidden from nodes that disable
drawing the focus ring. If a node draws its own focus state,
other than not drawing the ring, it should be indistinguishable
from other focusable nodes.
Fix the nav cache dump to be in line with the latest webkit.
fixes http://b/issue?id=2201049
Diffstat (limited to 'WebKit/android/nav/WebView.cpp')
-rw-r--r-- | WebKit/android/nav/WebView.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/WebKit/android/nav/WebView.cpp b/WebKit/android/nav/WebView.cpp index 0b1a4cf..9793ed4 100644 --- a/WebKit/android/nav/WebView.cpp +++ b/WebKit/android/nav/WebView.cpp @@ -437,8 +437,8 @@ void drawCursorRing(SkCanvas* canvas) resetCursorRing(); return; } - if (!node->hasCursorRing()) { - DBG_NAV_LOG("!node->hasCursorRing()"); + if (node->isHidden()) { + DBG_NAV_LOG("node->isHidden()"); m_viewImpl->m_hasCursorBounds = false; return; } @@ -486,13 +486,12 @@ void drawCursorRing(SkCanvas* canvas) setPluginReceivesEvents(false); return; } + if (!node->hasCursorRing() || (m_pluginReceivesEvents && node->isPlugin())) + return; CursorRing::Flavor flavor = CursorRing::NORMAL_FLAVOR; if (!isButton) { flavor = node->type() != NORMAL_CACHEDNODETYPE ? CursorRing::FAKE_FLAVOR : CursorRing::NORMAL_FLAVOR; - if (m_pluginReceivesEvents && node->isPlugin()) { - return; - } if (m_followedLink) { flavor = static_cast<CursorRing::Flavor> (flavor + CursorRing::NORMAL_ANIMATING); @@ -737,7 +736,7 @@ void updateCursorBounds(const CachedRoot* root, const CachedFrame* cachedFrame, LOG_ASSERT(cachedNode, "updateCursorBounds: cachedNode cannot be null"); LOG_ASSERT(cachedFrame, "updateCursorBounds: cachedFrame cannot be null"); m_viewImpl->gCursorBoundsMutex.lock(); - m_viewImpl->m_hasCursorBounds = cachedNode->hasCursorRing(); + m_viewImpl->m_hasCursorBounds = !cachedNode->isHidden(); // If m_viewImpl->m_hasCursorBounds is false, we never look at the other // values, so do not bother setting them. if (m_viewImpl->m_hasCursorBounds) { |