diff -r 8ca85d2f0db7 -r aabf2c525e0f uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp --- a/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp Fri Feb 19 23:04:46 2010 +0200 +++ b/uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp Fri Mar 12 15:43:43 2010 +0200 @@ -124,6 +124,11 @@ } else if ( aPointerEvent.iType == TPointerEvent::EButton1Up ) { + if ( iFlags.IsClear( EFlagDraggingAllowed ) ) + { + return; + } + iFlags.Clear( EFlagDraggingAllowed ); TPoint drag( 0, iStartPosition.iY - aPointerEvent.iPosition.iY ); iPhysics->StartPhysics( drag, iStartTime ); @@ -148,6 +153,18 @@ TSize totalSize( iViewRect.Width(), iViewRect.Height() + KMaxWorldSize ); TSize viewSize( iViewRect.Width(), iViewRect.Height() ); + + CTextLayout* layout = iEdwin.TextLayout(); + + if ( layout ) + { + TInt pixelsAbove = layout->PixelsAboveBand(); + if ( pixelsAbove > 0 ) + { + MoveScrollIndex( -pixelsAbove ); + } + } + iPhysics->InitPhysicsL( totalSize, viewSize, EFalse ); } @@ -648,3 +665,13 @@ } return EFalse; } + +// --------------------------------------------------------------------------- +// CAknEdwinPhysicsHandler::DisableDragging +// --------------------------------------------------------------------------- +// +void CAknEdwinPhysicsHandler::DisableDragging() + { + iFlags.Clear( EFlagDraggingAllowed ); + } +