diff -r 9f56a4e1b8ab -r 08e69e956a8c uifw/EikStd/coctlsrc/EIKSCRLB.CPP --- 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;