diff -r c8382f7b54ef -r 726fba06891a meetingrequest/mrgui/src/cmrfieldcontainer.cpp --- 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