summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/html
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2012-03-14 21:06:41 -0700
committerJohn Reck <jreck@google.com>2012-03-20 09:56:23 -0700
commita144ac64329978c258faadf3bc484cf4ae6c5d0d (patch)
treeebc3fdbea6ac1561330d4a94e67305aae495c6b7 /Source/WebCore/html
parent640bfa989e82aad4ff79ff786f31a6962c37d8fd (diff)
downloadexternal_webkit-a144ac64329978c258faadf3bc484cf4ae6c5d0d.zip
external_webkit-a144ac64329978c258faadf3bc484cf4ae6c5d0d.tar.gz
external_webkit-a144ac64329978c258faadf3bc484cf4ae6c5d0d.tar.bz2
Canvas on a texture
Change-Id: I841b3e021298738c91701068992798a55290a520
Diffstat (limited to 'Source/WebCore/html')
-rw-r--r--Source/WebCore/html/HTMLCanvasElement.cpp6
-rw-r--r--Source/WebCore/html/HTMLCanvasElement.h4
2 files changed, 10 insertions, 0 deletions
diff --git a/Source/WebCore/html/HTMLCanvasElement.cpp b/Source/WebCore/html/HTMLCanvasElement.cpp
index 9f51f10..e67cbf9 100644
--- a/Source/WebCore/html/HTMLCanvasElement.cpp
+++ b/Source/WebCore/html/HTMLCanvasElement.cpp
@@ -45,6 +45,7 @@
#include "MIMETypeRegistry.h"
#include "Page.h"
#include "RenderHTMLCanvas.h"
+#include "RenderLayer.h"
#include "Settings.h"
#include <math.h>
#include <stdio.h>
@@ -225,6 +226,11 @@ void HTMLCanvasElement::didDraw(const FloatRect& rect)
return;
m_dirtyRect.unite(r);
+#if PLATFORM(ANDROID)
+ // We handle invals ourselves and don't want webkit to repaint if we
+ // have put the canvas on a layer
+ if (!ro->hasLayer())
+#endif
ro->repaintRectangle(enclosingIntRect(m_dirtyRect));
}
diff --git a/Source/WebCore/html/HTMLCanvasElement.h b/Source/WebCore/html/HTMLCanvasElement.h
index 207c384..e485835 100644
--- a/Source/WebCore/html/HTMLCanvasElement.h
+++ b/Source/WebCore/html/HTMLCanvasElement.h
@@ -128,6 +128,10 @@ public:
void makeRenderingResultsAvailable();
+#if PLATFORM(ANDROID)
+ void clearDirtyRect() { m_dirtyRect = FloatRect(); }
+#endif
+
private:
HTMLCanvasElement(const QualifiedName&, Document*);