uifw/ganes/src/HgScrollbar.cpp
branchRCL_3
changeset 9 aabf2c525e0f
parent 4 8ca85d2f0db7
child 15 08e69e956a8c
--- a/uifw/ganes/src/HgScrollbar.cpp	Fri Feb 19 23:04:46 2010 +0200
+++ b/uifw/ganes/src/HgScrollbar.cpp	Fri Mar 12 15:43:43 2010 +0200
@@ -103,6 +103,8 @@
     layout.LayoutRect(aRect, AknLayoutScalable_Avkon::scroll_pane( variety ));
     iScrollbarRect = layout.Rect();
     
+    TBool prevStatic = iStatic;
+
     if((aTotalSize.iHeight <= aViewSize.iHeight && !aLandscapeScrolling)
             || (aTotalSize.iWidth <= aViewSize.iWidth && aLandscapeScrolling) )
         {
@@ -114,9 +116,12 @@
         iTotalSize = aTotalSize;
         iStatic = EFalse;
         }
+    
+    // Do we need to init the bg graphics
+    TBool initBg = (iViewSize != aViewSize) // view size has been changed 
+                    || (prevStatic != iStatic) // static value changed
+                    || (iLandscapeScrolling != aLandscapeScrolling); // different scrolling direction
 
-    TBool viewChanged = iViewSize != aViewSize;
-    
     iViewSize = aViewSize;
     iLandscapeScrolling = aLandscapeScrolling;
     iHandlePosition.SetXY(0,0);
@@ -130,7 +135,9 @@
         iTotalLength = iTotalSize.iHeight - iViewSize.iHeight;
         }
 
-    InitIconsL( viewChanged );    
+    // Don't init icons in static mode since they are not drawn
+    if(!iStatic)
+        InitIconsL( initBg );    
     }
 
 // -----------------------------------------------------------------------------
@@ -238,7 +245,8 @@
 //
 void CHgScrollbar::Draw( CWindowGc& aGc )
     {
-    DrawScrollbar( aGc );
+    if(!iStatic)
+        DrawScrollbar( aGc );
     }
 
 // -----------------------------------------------------------------------------
@@ -249,7 +257,7 @@
     {
     if(iScrollbarBg && iScrollbarHandle && iScrollbarHandleBg)
         {
-        if(iHandler && !iStatic)
+        if(iHandler)
             {
             aGc.BitBltMasked(iScrollbarRect.iTl, 
                     iScrollbarHandleBg->Bitmap(),
@@ -271,14 +279,11 @@
                     iScrollbarBg->Mask(),
                     EFalse);
 
-            if(!iStatic)
-                {
-                aGc.BitBltMasked(iScrollbarRect.iTl + iHandlePosition, 
-                        iScrollbarHandle->Bitmap(),
-                        iScrollbarHandle->Bitmap()->SizeInPixels(),
-                        iScrollbarHandle->Mask(),
-                        EFalse);
-                }
+            aGc.BitBltMasked(iScrollbarRect.iTl + iHandlePosition, 
+                    iScrollbarHandle->Bitmap(),
+                    iScrollbarHandle->Bitmap()->SizeInPixels(),
+                    iScrollbarHandle->Mask(),
+                    EFalse);
             }
         }
     }