diff -r 8ca85d2f0db7 -r aabf2c525e0f uifw/ganes/src/HgScrollbar.cpp --- 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); } } }