https://bugs.winehq.org/show_bug.cgi?id=19756 Damjan Jovanovic <damjan.jov(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch --- Comment #6 from Damjan Jovanovic <damjan.jov(a)gmail.com> --- So reading that file in wxWidgets 2.8.6's source code, and comparing it to Wine's dlls/comctl32/datetime.c, I saw where the problem was. (This is why open source is great, and dogfood bugs are the best.) wxWidgets' wxDatePickerCtrl control updates its internal m_date variable when it gets a DTN_DATETIMECHANGE notification from the comctl32 date time control. But Wine's comctl32 only sends that notification when you open the drop-down menu and click on a date, not when you just tick the checkbox without clicking on a date (even though a date (today's date) is immediately shown when you click the checkbox). Then, when it reaches that wxDatePickerCtrl::GetValue() method, it checks whether its internal m_date is the same as the one in (Wine's) date time control, and since it isn't (since no DTN_DATETIMECHANGE was sent when you only ticked the checkbox), it fails the assertion and opens the debug alert messagebox. The fix is 1 line of code: all we need to do is send a DTN_DATETIMECHANGE notification when the checkbox is clicked: ---snip--- diff --git a/dlls/comctl32/datetime.c b/dlls/comctl32/datetime.c index f44b52c3b65..93bca8c2f5c 100644 --- a/dlls/comctl32/datetime.c +++ b/dlls/comctl32/datetime.c @@ -1060,6 +1060,7 @@ DATETIME_Button_Command (DATETIME_INFO *infoPtr, WPARAM wParam, LPARAM lParam) DWORD state = SendMessageW((HWND)lParam, BM_GETCHECK, 0, 0); infoPtr->dateValid = (state == BST_CHECKED); InvalidateRect(infoPtr->hwndSelf, NULL, TRUE); + DATETIME_SendDateTimeChangeNotify(infoPtr); } return 0; } ---snip--- -- Do not reply to this email, post in Bugzilla using the above URL to reply. You are receiving this mail because: You are watching all bug changes.