http://bugs.winehq.org/show_bug.cgi?id=22758
Summary: MS Office 2007: riched20 assertion failure in CDKey registration screen Product: Wine Version: 1.1.44 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: richedit AssignedTo: wine-bugs@winehq.org ReportedBy: aeikum@codeweavers.com CC: dylan.ah.smith@gmail.com
Typing an invalid character (e.g. A or 1) into the MSO2007 CDKey registration text box causes an assertion failure in dlls/riched20/undo.c:387.
undo.c:387: ME_Undo: Assertion `editor->pUndoStack->type == diUndoEndTransaction || editor->pUndoStack->type == diUndoPotentialEndTransaction' failed.
I bisected this and found 049cf5aca0a2daafe0ce078757ad60f1a1cadc9e as the bad commit:
commit 049cf5aca0a2daafe0ce078757ad60f1a1cadc9e Author: Dylan Smith dylan.ah.smith@gmail.com Date: Fri May 14 20:11:28 2010 -0400
richedit: Avoid notifying parent window in improper state.
ME_CommitUndo and ME_CommitCoalescingUndo call ME_SendSelChange, which may notify the parent window that the selection has changed, therefore should generally be called after wrapping the text. Otherwise, the parent window may send a message to the editor and cause an assertion failure.
http://bugs.winehq.org/show_bug.cgi?id=22758
Andrew Eikum aeikum@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |regression
http://bugs.winehq.org/show_bug.cgi?id=22758
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW AssignedTo|wine-bugs@winehq.org |dylan.ah.smith@gmail.com Ever Confirmed|0 |1
--- Comment #1 from Dylan Smith dylan.ah.smith@gmail.com 2010-05-18 16:43:33 --- Created an attachment (id=28068) --> (http://bugs.winehq.org/attachment.cgi?id=28068) richedit: Move ME_SendSelChange out of ME_Commit functions.
Thanks for reporting this regression so quickly.
It seems as if I should revert that commit, and fix it in another way. I think the safest approach be to move ME_SendSelChange out of ME_CommitUndo.
Try reverting the commit that caused the regression, then try applying the attached patch to make sure it doesn't cause a similar regression with MS Office 2007.
http://bugs.winehq.org/show_bug.cgi?id=22758
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |patch
http://bugs.winehq.org/show_bug.cgi?id=22758
--- Comment #2 from Andrew Eikum aeikum@codeweavers.com 2010-05-18 17:01:48 --- I reverted 049cf5aca0a2daaf, applied your patch, and retested. No assert failure this time. Looks like a solution to me!
http://bugs.winehq.org/show_bug.cgi?id=22758
Rosanne DiMesio dimesio@earthlink.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dimesio@earthlink.net
--- Comment #3 from Rosanne DiMesio dimesio@earthlink.net 2010-05-18 17:48:37 --- There's another problem with the Office 2007 registration key entry caused by 049cf5aca0a2daafe0ce078757ad60f1a1cadc9e: the key is typed in backwards, each letter/number appears to the left of the preceding one instead of the right. Reverting that patch fixes the problem, but applying the new patch brings it back.
http://bugs.winehq.org/show_bug.cgi?id=22758
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #28068|0 |1 is obsolete| |
--- Comment #4 from Dylan Smith dylan.ah.smith@gmail.com 2010-05-19 01:29:24 --- Created an attachment (id=28072) --> (http://bugs.winehq.org/attachment.cgi?id=28072) richedit: Send EN_SELCHANGE after wrapping but before EN_CHANGE.
I believe that the second regression has to do with the order of notification messages. EN_SELCHANGE needs to be sent to the parent window before EN_CHANGE, which seems like it can simply be done in ME_UpdateRepaint.
Try the attached patch instead of my previous one (again after reverting the commit that caused the regression).
http://bugs.winehq.org/show_bug.cgi?id=22758
--- Comment #5 from Rosanne DiMesio dimesio@earthlink.net 2010-05-19 07:10:02 --- (In reply to comment #4)
Created an attachment (id=28072)
--> (http://bugs.winehq.org/attachment.cgi?id=28072) [details]
richedit: Send EN_SELCHANGE after wrapping but before EN_CHANGE.
I believe that the second regression has to do with the order of notification messages. EN_SELCHANGE needs to be sent to the parent window before EN_CHANGE, which seems like it can simply be done in ME_UpdateRepaint.
Try the attached patch instead of my previous one (again after reverting the commit that caused the regression).
I think you may have attached the wrong file--this one seems to be the same as the first one. In any case, it doesn't fix the problem.
http://bugs.winehq.org/show_bug.cgi?id=22758
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #28072|0 |1 is obsolete| |
--- Comment #6 from Dylan Smith dylan.ah.smith@gmail.com 2010-05-19 07:17:17 --- Created an attachment (id=28077) --> (http://bugs.winehq.org/attachment.cgi?id=28077) richedit: Send EN_SELCHANGE after wrapping but before EN_CHANGE.
(In reply to comment #5)
I think you may have attached the wrong file--this one seems to be the same as the first one. In any case, it doesn't fix the problem.
You're right. Sorry, I don't know how that happened.
http://bugs.winehq.org/show_bug.cgi?id=22758
--- Comment #7 from Rosanne DiMesio dimesio@earthlink.net 2010-05-19 08:14:45 --- (In reply to comment #6)
Created an attachment (id=28077)
--> (http://bugs.winehq.org/attachment.cgi?id=28077) [details]
richedit: Send EN_SELCHANGE after wrapping but before EN_CHANGE.
That fixes it.
http://bugs.winehq.org/show_bug.cgi?id=22758
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #28077|0 |1 is obsolete| |
--- Comment #8 from Dylan Smith dylan.ah.smith@gmail.com 2010-05-19 11:09:06 --- (From update of attachment 28077) Accepted as commit dcbc22b98530857266ff950007b29b7a2fbcea1b
http://bugs.winehq.org/show_bug.cgi?id=22758
Dylan Smith dylan.ah.smith@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED
--- Comment #9 from Dylan Smith dylan.ah.smith@gmail.com 2010-05-19 11:12:09 --- The commit that caused the regression has been reverted, and the new fix has been reported to avoid the regression.
http://bugs.winehq.org/show_bug.cgi?id=22758
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #10 from Alexandre Julliard julliard@winehq.org 2010-05-21 14:40:26 --- Closing bugs fixed in 1.2-rc1.