multimediacommscontroller/mmccvideosourcesink/src/mccredrawhandler.cpp
branchRCL_3
changeset 19 3f7c7e6eea8a
parent 11 a5ac35ca6d81
child 20 4da1f672912e
--- 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 );
     }
 
 // -----------------------------------------------------------------------------