diff -r a8834a2e9a96 -r c52421ed5f07 uifw/EikStd/coctlsrc/EIKSCRLB.CPP --- a/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Wed Jun 09 09:58:37 2010 +0300 +++ b/uifw/EikStd/coctlsrc/EIKSCRLB.CPP Mon Jun 21 15:57:43 2010 +0300 @@ -1320,25 +1320,31 @@ if ( extension->iShowPopup && extension->iPopupController ) { TPoint infoPoint = PositionRelativeToScreen(); - + if ( iOrientation == EVertical ) { if ( AknLayoutUtils::LayoutMirrored() ) + { + TRect mainPaneRect( 0, 0, 0, 0 ); + AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, + mainPaneRect ); + TInt mainPaneWidth = mainPaneRect.Width(); + infoPoint.iX += ( mainPaneWidth - infoPoint.iX + Rect().Width() ) / 2 ; + infoPoint.iY += aPointerEvent.iPosition.iY; + extension->iPopupController->SetPositionAndAlignment ( + infoPoint, EHRightVCenter ); + } + else { - infoPoint.iX += Rect().Width(); + infoPoint.iX = infoPoint.iX / 2; infoPoint.iY += aPointerEvent.iPosition.iY; extension->iPopupController->SetPositionAndAlignment ( infoPoint, EHLeftVCenter ); } - else - { - infoPoint.iY += aPointerEvent.iPosition.iY; - extension->iPopupController->SetPositionAndAlignment ( - infoPoint, EHRightVCenter ); - } } else if ( iOrientation == EHorizontal ) { + //infoPoint.iY = infoPoint.iY / 2; infoPoint.iX += aPointerEvent.iPosition.iX; extension->iPopupController->SetPositionAndAlignment( infoPoint, EHCenterVBottom );