uifw/EikStd/coctlsrc/EIKSCRLB.CPP
branchRCL_3
changeset 15 08e69e956a8c
parent 4 8ca85d2f0db7
child 16 71dd06cfe933
--- 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;