--- 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);
}
}
}