diff --git a/src/msw/datectrl.cpp b/src/msw/datectrl.cpp index 05beb336e0..d21cb60ef0 100644 --- a/src/msw/datectrl.cpp +++ b/src/msw/datectrl.cpp @@ -196,7 +196,11 @@ bool wxDatePickerCtrl::GetRange(wxDateTime *dt1, wxDateTime *dt2) const DWORD flags = DateTime_GetRange(GetHwnd(), st); if ( dt1 ) { - if ( flags & GDTR_MIN ) + // Workaround for https://bugs.winehq.org/show_bug.cgi?id=40301: WINE + // returns GDTR_MIN even if there is no lower range bound. Luckily we + // can check for it easily as the SYSTEMTIME contains only zeroes in + // this case and 0 is invalid value for wMonth field. + if ( (flags & GDTR_MIN) && (st[0].wMonth != 0) ) dt1->SetFromMSWSysDate(st[0]); else *dt1 = wxDefaultDateTime;