diff -r 817c922b90eb -r 3f7c7e6eea8a multimediacommscontroller/mmccvideosourcesink/src/mccredrawhandler.cpp --- a/multimediacommscontroller/mmccvideosourcesink/src/mccredrawhandler.cpp Thu Aug 19 10:18:22 2010 +0300 +++ b/multimediacommscontroller/mmccvideosourcesink/src/mccredrawhandler.cpp Tue Aug 31 15:35:13 2010 +0300 @@ -61,6 +61,7 @@ __V_SOURCESINK_CONTROLL_INT1( "CMccRedrawHandler::BlackDrawingL, enabled:", aIsEnabled ) + iDrawBlack = aIsEnabled; if ( DoRedrawing() ) { @@ -115,7 +116,8 @@ CActive( CActive::EPriorityStandard ), iWsSession( aWsSession ), iWindow( aWindow ), - iGc( aGc ) + iGc( aGc ), + iDrawBlack( EFalse ) { CActiveScheduler::Add( this ); } @@ -148,7 +150,14 @@ iWindow.Invalidate( aRect ); iWindow.BeginRedraw( aRect ); - if ( iWindow.DisplayMode() >= EColor16MA ) + if ( iDrawBlack ) + { + iGc.SetBrushStyle( CGraphicsContext::ESolidBrush ); + iGc.SetBrushColor( KRgbBlack ); + iGc.Clear( aRect ); + iDrawBlack = EFalse; + } + else if ( iWindow.DisplayMode() >= EColor16MA ) { // Need to set alpha mode, otherwise video cannot be seen iGc.SetDrawMode( CGraphicsContext::EDrawModeWriteAlpha ); @@ -173,7 +182,7 @@ // TBool CMccRedrawHandler::DoRedrawing() const { - return ( iWindow.DisplayMode() >= EColor16MA ); + return ( iDrawBlack || iWindow.DisplayMode() >= EColor16MA ); } // -----------------------------------------------------------------------------