From 7afb4241f148c5e16ba0cceef67fc4a9d4383f65 Mon Sep 17 00:00:00 2001 From: Timothy Nikkel Date: Thu, 2 Jul 2015 12:50:15 -0500 Subject: [PATCH] Bug 1179298. ClientTiledPaintedLayer should allow empty transactions to succeed if it doesn't need to draw anything. r=mattwoodrow ClientTiledPaintedLayer::RenderLayer was returning false immediately if there was no callback. It should check if it actually has to draw anything first, and then if it needs to paint it can return false if there is no callback. --- gfx/layers/client/ClientTiledPaintedLayer.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gfx/layers/client/ClientTiledPaintedLayer.cpp b/gfx/layers/client/ClientTiledPaintedLayer.cpp index 0e0cd5dd530..181fae91394 100644 --- a/gfx/layers/client/ClientTiledPaintedLayer.cpp +++ b/gfx/layers/client/ClientTiledPaintedLayer.cpp @@ -393,10 +393,6 @@ ClientTiledPaintedLayer::RenderLayer() LayerManager::DrawPaintedLayerCallback callback = ClientManager()->GetPaintedLayerCallback(); void *data = ClientManager()->GetPaintedLayerCallbackData(); - if (!callback) { - ClientManager()->SetTransactionIncomplete(); - return; - } if (!mContentClient) { mContentClient = new TiledContentClient(this, ClientManager()); @@ -442,6 +438,11 @@ ClientTiledPaintedLayer::RenderLayer() return; } + if (!callback) { + ClientManager()->SetTransactionIncomplete(); + return; + } + if (!ClientManager()->IsRepeatTransaction()) { // Only paint the mask layers on the first transaction. RenderMaskLayers(this);