--- a/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Mon Mar 15 12:41:34 2010 +0200
+++ b/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Wed Mar 31 21:59:52 2010 +0300
@@ -2352,6 +2352,47 @@
TRect area;
+ if ( iParentControl )
+ {
+ CCoeControl* windowOwningParent = iParentControl;
+ while ( windowOwningParent && !windowOwningParent->OwnsWindow() )
+ {
+ windowOwningParent = windowOwningParent->Parent();
+ }
+
+ if ( windowOwningParent )
+ {
+ TInt xGap = 0;
+ TRect scrollBarRect = Rect();
+ TRect parentRect = windowOwningParent->Rect();
+
+ if ( OwnsWindow() )
+ {
+ scrollBarRect.Move( Position().iX -
+ windowOwningParent->Position().iX, 0 );
+ }
+
+ // left to right layout in use
+ if ( !AknLayoutUtils::LayoutMirrored() )
+ {
+ xGap = parentRect.iBr.iX - scrollBarRect.iBr.iX;
+ if ( Abs( xGap ) < scrollBarRect.Width() )
+ {
+ extension.iBr.iX += xGap;
+ }
+ }
+ // right to left layout in use
+ else
+ {
+ xGap = parentRect.iTl.iX - scrollBarRect.iTl.iX;
+ if ( Abs( xGap ) < scrollBarRect.Width() )
+ {
+ extension.iTl.iX += xGap;
+ }
+ }
+ }
+ }
+
if ( iOrientation == CEikScrollBar::EVertical )
{
area.iTl.iX = extension.iTl.iX - scrollbar.iTl.iX;