uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp
branchRCL_3
changeset 10 9f56a4e1b8ab
parent 4 8ca85d2f0db7
child 23 3d340a0166ff
--- a/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp	Fri Mar 12 15:43:43 2010 +0200
+++ b/uifw/EikStd/coctlsrc/AknDoubleSpanScrollIndicator.cpp	Mon Mar 15 12:41:34 2010 +0200
@@ -69,8 +69,8 @@
 void CAknDoubleSpanScrollIndicator::Draw(const TRect& /*aRect*/) const
     {
     CWindowGc& gc = SystemGc();
+    if( iDrawBackground || iForceDrawBackground )
 
-    if(iDrawBackground)
         {
         DrawBackground();
         }
@@ -218,12 +218,29 @@
         checkedFieldPosition, 
         checkedFieldSize);
     
+    TBool wasEmpty = iBackgroundRect.IsEmpty();
+    TBool isEmpty = EFalse;
+
     // If span (max number of items) is zero, then draw only the background
     if ( checkedScrollSpan == 0 || ( checkedScrollSpan <= checkedWindowSize ) )
         {
         iBackgroundRect = TRect( 0, 0, 0, 0 );
         iHandleBackgroundRect = TRect(0,0,0,0);
         iHandleRect = TRect(0,0,0,0);
+        iForceDrawBackground = ETrue; // to enable background drawing
+        isEmpty = ETrue;
+        }
+    else
+        {
+        iForceDrawBackground = EFalse;
+        }
+    if ( wasEmpty != isEmpty || iForceDrawBackground )
+        {
+        DrawDeferred();
+        }
+    
+    if ( isEmpty )
+        {
         return;
         }