uifw/EikStd/coctlsrc/aknedwinphysicshandler.cpp
branchRCL_3
changeset 9 aabf2c525e0f
parent 4 8ca85d2f0db7
child 10 9f56a4e1b8ab
--- 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 );
+    }
+