emailuis/uicomponents/src/fstreevisualizerbase.cpp
branchRCL_3
changeset 8 e1b6206813b4
parent 4 e7aa27f58ae1
child 10 f5907b1a1053
--- a/emailuis/uicomponents/src/fstreevisualizerbase.cpp	Tue Feb 02 00:02:40 2010 +0200
+++ b/emailuis/uicomponents/src/fstreevisualizerbase.cpp	Fri Feb 19 22:37:30 2010 +0200
@@ -1703,6 +1703,17 @@
     }
 
 // ---------------------------------------------------------------------------
+// Gets item vertical position in the list 
+// ---------------------------------------------------------------------------
+//
+TInt CFsTreeVisualizerBase::GetItemWorldPosition( const TInt aIdx )
+    {
+    TRect rect;
+    iWorld.GetItemRectByIndex( aIdx, rect);
+    return rect.iTl.iY;
+    }
+
+// ---------------------------------------------------------------------------
 // Checks if the specified item is focused.
 // ---------------------------------------------------------------------------
 //
@@ -2524,7 +2535,8 @@
             iWorld.AppendL(itemId, itemviz->Size());
             }
         }
-    iViewPort.SetPositionL(TPoint(), EFalse);
+        // Below line commetned out. ViewPort is now not moved to the top of mail list
+        //iViewPort.SetPositionL(TPoint(), EFalse);
     iViewPort.ClearCache();
     if (!isUpdating)
         {
@@ -5020,15 +5032,26 @@
     }
 
 // ---------------------------------------------------------------------------
+// Returns viewPort top-left position
+// ---------------------------------------------------------------------------
+//
+TPoint CFsTreeVisualizerBase::ViewPortTopPosition() const
+{
+    FUNC_LOG;
+    return iViewPort.Position();
+}
+
+// ---------------------------------------------------------------------------
 // Physic updated view position
 // ---------------------------------------------------------------------------
 //
 void CFsTreeVisualizerBase::ViewPositionChanged(const TPoint& aNewPosition,
-        TBool /*aDrawNow*/, TUint /*aFlags*/)
+        TBool /*aDrawNow*/, TUint aFlags )
     {
     FUNC_LOG;
     TInt error(KErrNone);
-    TRAP( error, iViewPort.SetCenterPositionL(aNewPosition, ETrue, EUpdatedByPhisic) );
+    TRAP( error, iViewPort.SetCenterPositionL(aNewPosition, ETrue,
+                aFlags == 0 ? EUpdatedByPhisic : ENotUpdatedByPhisic ) );
     ERROR_1( error, "iViewPort.SetCenterPositionL failed with error: %d", error );
     }