Bug 1066280 - Handle dirtying in BasicCanvasLayer. - r=mattwoodrow
--- a/gfx/layers/basic/BasicCanvasLayer.cpp
+++ b/gfx/layers/basic/BasicCanvasLayer.cpp
@@ -23,19 +23,23 @@ namespace layers {
void
BasicCanvasLayer::Paint(DrawTarget* aDT,
const Point& aDeviceOffset,
Layer* aMaskLayer)
{
if (IsHidden())
return;
- FirePreTransactionCallback();
- UpdateTarget();
- FireDidTransactionCallback();
+ if (IsDirty()) {
+ Painted();
+
+ FirePreTransactionCallback();
+ UpdateTarget();
+ FireDidTransactionCallback();
+ }
if (!mSurface) {
return;
}
Matrix oldTM;
if (mNeedsYFlip) {
oldTM = aDT->GetTransform();