summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/android/android_graphics.h
diff options
context:
space:
mode:
authorCary Clark <cary@android.com>2011-02-15 14:57:24 -0500
committerCary Clark <cary@android.com>2011-02-15 15:27:33 -0500
commitcd8a18fcca4aaa5658aaf236b034516fccac7932 (patch)
treee55bcbe8d4639ccfa002ac7d662c480be8806bb6 /WebCore/platform/graphics/android/android_graphics.h
parentb79179af449789abf223f6257a043e692197eed7 (diff)
downloadexternal_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.h1
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;