diff -r 46927d61fef3 -r 3ac8bf5c5014 uiacceltk/hitchcock/coretoolkit/src/HuiFxEffectParser.cpp --- a/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffectParser.cpp Wed Apr 14 16:53:50 2010 +0300 +++ b/uiacceltk/hitchcock/coretoolkit/src/HuiFxEffectParser.cpp Tue Apr 27 17:34:42 2010 +0300 @@ -345,9 +345,11 @@ #endif TPtrC16 extBitmap; THuiFxVisualSrcType srcType = GetSrcTypeL( aNode, extBitmap ); + TBool opaqueHint = GetOpaqueHintL(aNode); CHuiFxVisualLayer* visual = CHuiFxVisualLayer::NewL( iVisual ); CleanupStack::PushL( visual ); visual->SetSourceType( srcType ); + visual->SetFxmlUsesOpaqueHint( opaqueHint ); if ( srcType == EVisualSrcBitmap && extBitmap.Length() > 0 ) { visual->SetExtBitmapFileL( extBitmap ); @@ -1159,6 +1161,35 @@ #endif return ref; } +TBool CHuiFxEffectParser::GetOpaqueHintL( CMDXMLNode *aNode ) + { + if (aNode->NodeType() != CMDXMLNode::EElementNode) + { + FAIL(KErrGeneral, _L("Text node expected while reading visual source type")); + } + TInt attributeIndex = ((CMDXMLElement*)aNode)->FindIndex( KLitOpaque ); + if (attributeIndex == KErrNotFound) + { + // If src not found, the source defaults to visual itself + return EFalse; + } + + TPtrC attributeValue; + TPtrC attributeName; + User::LeaveIfError(((CMDXMLElement*)aNode)->AttributeDetails( attributeIndex, attributeName, attributeValue )); + + if( attributeValue.Compare( KLitTrue ) == 0 ) + { + return ETrue; + } + + if( attributeValue.Compare( KLitFalse ) == 0 ) + { + return EFalse; + } + + return EFalse; + } THuiFxVisualSrcType CHuiFxEffectParser::GetSrcTypeL( CMDXMLNode* aNode, TPtrC16& aBitmap ) {