--- a/uiacceltk/hitchcock/coretoolkit/src/HuiCanvasVisual.cpp Tue May 11 17:03:00 2010 +0300
+++ b/uiacceltk/hitchcock/coretoolkit/src/HuiCanvasVisual.cpp Tue May 25 13:39:57 2010 +0300
@@ -342,6 +342,11 @@
TBool CHuiCanvasVisual::CanSkipDrawing() const
{
+ if(Display()->RosterImpl().AlfEventWindow() == this)
+ {
+ return EFalse;
+ }
+
if (Effect())
{
TBool semiTranparentEffectActive = Effect()->IsSemitransparent();
@@ -465,7 +470,11 @@
iCanvasVisualData->iPaintedRegion.Clear();
CollectPaintedRegion(iCanvasVisualData->iPaintedRegion, 0);
}
-
+
+ if(Display()->RosterImpl().AlfEventWindow() == this)
+ {
+ refreshCache |= Display()->RosterImpl().NativeAppsContentChanged();
+ }
didDrawEffect = Effect()->CachedDraw(aGc, area, refreshCache, !transparent, iCanvasVisualData->iPaintedRegion);
}
@@ -536,10 +545,10 @@
RDebug::Print(_L("CHuiCanvasVisual::DrawSelf - tracked visual"));
}
#endif
-
+ TBool alfEventWindow = (Display()->RosterImpl().AlfEventWindow() == this);
TReal32 effectiveOpacity = EffectiveOpacity();
- if (effectiveOpacity <= 0 || !HasCommandBuffers(ETrue))
+ if ((effectiveOpacity <= 0 || !HasCommandBuffers(ETrue)) && !alfEventWindow)
{
// In case background drawing is enabled, and even if we don't have command buffers we still
// want to issue clear. If the background drawing is enabled here, it means that the
@@ -572,6 +581,12 @@
}
}
+ if(alfEventWindow)
+ {
+ Display()->RosterImpl().DrawNativeAppsContent(aGc, Display());
+ return;
+ }
+
// Use 'under opaque' hint to optimize drawing.
// See comment from CHuiCanvasVisual::Draw for further details.
const TBool drawVisualContent = !( Flags() & EHuiVisualFlagUnderOpaqueHint );
@@ -997,6 +1012,7 @@
}
background.iPaintedRect = backgroundItems[aIndex].Rect();
+ backgroundItems.Close();
return background;
}
else