http://bugs.winehq.org/show_bug.cgi?id=19756
Summary: TaskCoach: Cannot add new task with a due date Product: Wine Version: 1.1.27 Platform: PC URL: http://www.taskcoach.org/download.html OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: jekwas@gmail.com
Created an attachment (id=23126) --> (http://bugs.winehq.org/attachment.cgi?id=23126) taskcoach.exe.log
I ran across this while testing for 8322. Task Coach is unable to add a new task if a Due Date is specified.
To reproduce, click "New task" in the main window. Go to the Dates tab and add a due date. Press OK, and nothing will happen. When you close Task Coach, it will alert you of logged errors.
I have attached such a log. (Wine doesn't output with any problems when trying to add a task)
http://bugs.winehq.org/show_bug.cgi?id=19756
jekwas@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, source
http://bugs.winehq.org/show_bug.cgi?id=19756
Bruno Jesus 00cpxxx@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW URL|http://www.taskcoach.org/do |http://sourceforge.net/proj |wnload.html |ects/taskcoach/files/taskco | |ach/Release%200.67.0/ CC| |00cpxxx@gmail.com Ever Confirmed|0 |1
--- Comment #1 from Bruno Jesus 00cpxxx@gmail.com 2012-03-04 23:27:21 CST --- I can confirm this issue in 1.4-rc6, program version 0.67 available from source forge. http://sourceforge.net/projects/taskcoach/files/taskcoach/Release%200.67.0/
https://bugs.winehq.org/show_bug.cgi?id=19756
Ken Sharp imwellcushtymelike@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |Abandoned?
--- Comment #2 from Ken Sharp imwellcushtymelike@gmail.com --- Is this still an issue in Wine 1.7.45 or later?
https://bugs.winehq.org/show_bug.cgi?id=19756
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |super_man@post.com
--- Comment #3 from super_man@post.com --- "To reproduce, click "New task" in the main window. Go to the Dates tab and add a due date. Press OK, and nothing will happen. When you close Task Coach, it will alert you of logged errors."
The behaviour has changed. It gives you an error mesage and if you continue pressing yes you will end up crashing wine
wine 1.8.rc1
https://bugs.winehq.org/show_bug.cgi?id=19756
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |damjan.jov@gmail.com Keywords|Abandoned? |
--- Comment #4 from Damjan Jovanovic damjan.jov@gmail.com --- Wine 6.6
"New Task", "Dates", tick "Completion Date", click "OK", and this messagebox comes up:
---snip--- wxWidgets Debug Alert
....\src\msw\datectrl.cpp(278): assert "m_date.IsValid() == dt.IsValid() && (!dt.IsValid() || dt == m_date)" failed in wxDatePickerCtrl::GetValue(): bug in wxDatePickerCtrl: m_date not in sync Do you want to stop the program? You can also choose [Cancel] to suppress further warnings. ---snip---
https://bugs.winehq.org/show_bug.cgi?id=19756
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|-unknown |comctl32
--- Comment #5 from Damjan Jovanovic damjan.jov@gmail.com --- ---snip--- wxDateTime wxDatePickerCtrl::GetValue() const { #ifdef __WXDEBUG__ wxDateTime dt; SYSTEMTIME st; if ( DateTime_GetSystemtime(GetHwnd(), &st) == GDT_VALID ) { wxFromSystemTime(&dt, st); }
wxASSERT_MSG( m_date.IsValid() == dt.IsValid() && (!dt.IsValid() || dt == m_date), _T("bug in wxDatePickerCtrl: m_date not in sync") ); #endif // __WXDEBUG__
return m_date; } ---snip---
It uses the common controls datetime picker control. Setting component.
https://bugs.winehq.org/show_bug.cgi?id=19756
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
--- Comment #6 from Damjan Jovanovic damjan.jov@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---
https://bugs.winehq.org/show_bug.cgi?id=19756
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|TaskCoach: Cannot add new |Date/time picker doesn't |task with a due date |notify app about checkbox | |changes (TaskCoach: Cannot | |add new task with a due | |date)
https://bugs.winehq.org/show_bug.cgi?id=19756
Damjan Jovanovic damjan.jov@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Fixed by SHA1| |9b61a646012afe7e1b63fc8970a | |473d2a12ea111
--- Comment #7 from Damjan Jovanovic damjan.jov@gmail.com --- Patch committed, resolving fixed. Wine release 6.7 will be the first working version.
Thank you for your bug report.
https://bugs.winehq.org/show_bug.cgi?id=19756
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #8 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 6.8.
https://bugs.winehq.org/show_bug.cgi?id=19756
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |6.0.x
https://bugs.winehq.org/show_bug.cgi?id=19756
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|6.0.x |---
--- Comment #9 from Michael Stefaniuc mstefani@winehq.org --- Removing the 6.0.x milestone from bug fixes included in 6.0.2.