Fix generic wxTimePickerCtrl on DST change dates.
Do not use the date when DST changes as the date part of wxDateTime object used by wxTimePickerGeneric internally as this introduces problems with times that can't be represented at all -- and so can't be entered into the control. Use arbitrary date on which DST does not change to avoid this. Closes #14137. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -131,6 +131,17 @@ public:
|
||||
{
|
||||
m_time = time.IsValid() ? time : wxDateTime::Now();
|
||||
|
||||
// Ensure that the date part doesn't correspond to a DST change date as
|
||||
// time is discontinuous then resulting in many problems, e.g. it's
|
||||
// impossible to even enter 2:00:00 at the beginning of summer time
|
||||
// date as this time doesn't exist. By using Jan 1, on which nobody
|
||||
// changes DST, we avoid all such problems.
|
||||
wxDateTime::Tm tm = m_time.GetTm();
|
||||
tm.mday =
|
||||
tm.yday = 1;
|
||||
tm.mon = wxDateTime::Jan;
|
||||
m_time.Set(tm);
|
||||
|
||||
UpdateTextWithoutEvent();
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user