diff options
author | Cary Clark <cary@android.com> | 2011-02-15 14:57:24 -0500 |
---|---|---|
committer | Cary Clark <cary@android.com> | 2011-02-15 15:27:33 -0500 |
commit | cd8a18fcca4aaa5658aaf236b034516fccac7932 (patch) | |
tree | e55bcbe8d4639ccfa002ac7d662c480be8806bb6 /WebCore/platform/graphics/android/android_graphics.h | |
parent | b79179af449789abf223f6257a043e692197eed7 (diff) | |
download | external_webkit-cd8a18fcca4aaa5658aaf236b034516fccac7932.zip external_webkit-cd8a18fcca4aaa5658aaf236b034516fccac7932.tar.gz external_webkit-cd8a18fcca4aaa5658aaf236b034516fccac7932.tar.bz2 |
fix buttons in GL
Buttons failed to draw when selected with the keyboard, and
sometimes when selected by touch, for three reasons:
1) GL short-circuits if the last extra rectangle and the
curent extra rectangle match. When buttons change color,
the rectangles do match, but the picture still needs to
be redrawn.
2) Buttons do not have cursor rings, so the button's bounds
was not passed to GL.
3) The timeout logic to switch from a focused state to a normal
state was incorrect.
This adds a flag to GLWebViewState::setExtra that can skip the
equal rectangle case. Note that the equal rectangle test hides
a more serious bug where the setExtra is called repeatedly -- so
it would be worthwhile to examine this further.
The logic that determines if the cursor is a button was split
out so that the cursor ring can be associated with a button even
if the cursor is hidden.
bug:3364248
Change-Id: I75944cb045486c128743aa13922d20758ccf783f
Diffstat (limited to 'WebCore/platform/graphics/android/android_graphics.h')
-rw-r--r-- | WebCore/platform/graphics/android/android_graphics.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/android/android_graphics.h b/WebCore/platform/graphics/android/android_graphics.h index 9f52a27..be309a6 100644 --- a/WebCore/platform/graphics/android/android_graphics.h +++ b/WebCore/platform/graphics/android/android_graphics.h @@ -54,6 +54,7 @@ public: CursorRing(WebViewCore* core) : m_viewImpl(core) {} virtual ~CursorRing() {} virtual void draw(SkCanvas* , LayerAndroid* , IntRect* ); + void setIsButton(const CachedNode* ); bool setup(); private: friend class WebView; |