--- a/meetingrequest/mrgui/src/cmrfieldcontainer.cpp Wed Sep 15 11:52:37 2010 +0300
+++ b/meetingrequest/mrgui/src/cmrfieldcontainer.cpp Wed Oct 13 14:11:15 2010 +0300
@@ -361,8 +361,10 @@
// Remove existing focus
focusedField->SetOutlineFocusL( EFalse );
focusedField->SetFocus( EFalse );
+ focusedField->MoveToScreen( EFalse );
// Set focus to new field
+ visibleField->MoveToScreen( ETrue );
visibleField->SetOutlineFocusL( ETrue );
visibleField->SetFocus( ETrue );
@@ -554,7 +556,7 @@
// is done.
ScrollControlVisible( iFocusedFieldIndex );
}
-
+ SizeChanged();
DrawDeferred();
}
}
@@ -920,9 +922,11 @@
if ( field->IsVisible() )
{
- field->SetPosition( aTl );
-
- aTl.iY += field->Size().iHeight;
+ TPoint pos( field->Position() );
+ pos.iY = aTl.iY;
+ field->SetPosition( pos );
+
+ aTl.iY += field->Size().iHeight;
}
}
}
@@ -1064,6 +1068,23 @@
field->MoveToScreen( !iScrolling );
}
+// ---------------------------------------------------------------------------
+// CMRFieldContainer::RedrawField
+// ---------------------------------------------------------------------------
+//
+void CMRFieldContainer::RedrawField( CESMRField& aField )
+ {
+ FUNC_LOG;
+
+ // Record and redraw field only if it is not on screen
+ if ( !aField.HasOutlineFocus() )
+ {
+ aField.RecordField();
+ TRect rect( aField.Rect() );
+ rect.Move( iPosition.iX - rect.iTl.iX, 0 );
+ aField.DrawNow( rect );
+ }
+ }
// ---------------------------------------------------------------------------
// CMRFieldContainer::Draw