diff -r 9c5b1510919f -r bf573002ff72 calendarui/editors/src/calenreminderfield.cpp --- a/calendarui/editors/src/calenreminderfield.cpp Wed Jun 09 09:40:23 2010 +0300 +++ b/calendarui/editors/src/calenreminderfield.cpp Mon Jun 21 15:38:59 2010 +0300 @@ -85,6 +85,7 @@ TRACE_ENTRY_POINT; iIsAlarmOnOff = CCalenReminderField::EAlarmNoAlarm; + isAllDayInitialOffsetSet = EFalse; TRACE_EXIT_POINT; } @@ -233,11 +234,23 @@ { TRACE_ENTRY_POINT; - // Updating operation is executed only if alarm date/time field exists. - if( iUnifiedEditor.Edited().IsAlarmActivated() ) - { - TTime start = iUnifiedEditor.Edited().EventDateTime(); - TTime alarm = start + iAlarmOffset; + // Updating operation is executed only if alarm date/time field exists. + if( iUnifiedEditor.Edited().IsAlarmActivated() ) + { + TTime start = iUnifiedEditor.Edited().EventDateTime(); + TTime alarm; + //For a new allday event when the start time is changed for the first time + //alarm time must be updated correctly + if(iUnifiedEditor.Edited().IsAllDayEvent() && !isAllDayInitialOffsetSet + && iUnifiedEditor.EditorDataHandler().IsCreatingNew()) + { + alarm = CalenDateUtils::DefaultTime(start)+iAlarmOffset; + isAllDayInitialOffsetSet = ETrue; + } + else + { + alarm = start + iAlarmOffset; + } alarm = CalenDateUtils::LimitToValidTime( alarm ); iUnifiedEditor.Edited().SetAlarmDateTimeL( alarm ); SetDataToEditorL();