--- a/windowing/windowserver/nga/SERVER/openwfc/wnredraw.cpp Fri Mar 12 15:50:05 2010 +0200
+++ b/windowing/windowserver/nga/SERVER/openwfc/wnredraw.cpp Mon Mar 15 12:45:41 2010 +0200
@@ -252,13 +252,18 @@
for (CWsSpriteBase * sprite = iWsWin->iSpriteList; sprite; sprite = sprite->Next())
{
+ TBool hasRedrawBegun = EFalse;
STACK_REGION redrawRegion;
sprite->CalcRedrawRegion(aRegion, redrawRegion);
if(redrawRegion.CheckError() || !redrawRegion.IsEmpty())
{
if (sprite->IsFlashingEnabled() || sprite->IsDirty() || sprite->HasAnimation())
{
- AnnotateSpriteRedrawStart(*iWsWin, *sprite, redrawRegion);
+ if (sprite->IsDirty() || sprite->HasAnimation())
+ {
+ AnnotateSpriteRedrawStart(*iWsWin, *sprite, redrawRegion);
+ hasRedrawBegun = ETrue;
+ }
if(sprite->HasAnimation())
{
@@ -276,10 +281,16 @@
}
//...call Redraw on the sprite
- aGc->Reset();
+ if (hasRedrawBegun)
+ {
+ aGc->Reset();
+ }
sprite->Redraw(aGc, redrawRegion);
- AnnotateSpriteRedrawEnd(*iWsWin, *sprite);
+ if (hasRedrawBegun)
+ {
+ AnnotateSpriteRedrawEnd(*iWsWin, *sprite);
+ }
}
}
redrawRegion.Close();