http://bugs.winehq.org/show_bug.cgi?id=12311
Summary: Corman Lisp requires implementations for richedit stubs Product: Wine Version: CVS/GIT Platform: PC URL: http://scguy318.freeshell.org/CormanLisp_3_01_setup.exe OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: richedit AssignedTo: wine-bugs@winehq.org ReportedBy: nodisgod@yahoo.com
Corman Lisp (obtainable from http://www.cormanlisp.com/cgi/rgcorman/ccl_download_form30.cgi) running on current Git (wine-0.9.58-357-g338539c) hangs and fails to redraw or properly render the window. Outputted messages consists of:
fixme:richedit:RichEditWndProc_common WM_STYLECHANGING: stub fixme:richedit:RichEditWndProc_common WM_STYLECHANGED: stub fixme:richedit:RichEditWndProc_common WM_STYLECHANGING: stub fixme:richedit:RichEditWndProc_common WM_STYLECHANGED: stub fixme:richedit:RichEditWndProc_common ECO_AUTOWORDSELECTION not implemented yet! fixme:richedit:RichEditWndProc_common ECO_AUTOVSCROLL not implemented yet! fixme:richedit:RichEditWndProc_common ECO_NOHIDESEL not implemented yet!
thus indicating a richedit issue. Using native richedit resulted in a working window but unusually small text font size in the code window that could not be rectified by increasing font size.
http://bugs.winehq.org/show_bug.cgi?id=12311
--- Comment #1 from scguy318 nodisgod@yahoo.com 2008-03-31 12:43:59 --- As an additional note, if the Corman Lisp trial is obtained from the bug URL, the necessary password to start installation is coltrane.
http://bugs.winehq.org/show_bug.cgi?id=12311
scguy318 nodisgod@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download, Installer
http://bugs.winehq.org/show_bug.cgi?id=12311
Alex Villacís Lasso a_villacis@palosanto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |a_villacis@palosanto.com Status|UNCONFIRMED |NEW Ever Confirmed|0 |1
--- Comment #2 from Alex Villacís Lasso a_villacis@palosanto.com 2008-05-09 16:29:56 --- Confirming bug.
This bug involves an endless loop somewhere in message processing. Without doubt it is a richedit bug, since it is worked around by riched20 native override.
http://bugs.winehq.org/show_bug.cgi?id=12311
--- Comment #3 from Alex Villacís Lasso a_villacis@palosanto.com 2008-05-13 11:57:45 --- Created an attachment (id=13022) --> (http://bugs.winehq.org/attachment.cgi?id=13022) richedit: empty text should result in a scroll range of 0. Tests for this behavior
This patch fixes a side issue found while investigating this bug. Due to code freeze, several richedit patches were put on hold which fix known bugs. To apply cleanly, get 1.0-rc1, then apply the following patches, in the given order:
From bug #4144:
http://bugs.winehq.org/attachment.cgi?id=12759 richedit: fix misreporting of match offset for EM_FINDTEXT and EM_FINDTEXTEX
From bug #8132:
http://bugs.winehq.org/attachment.cgi?id=12760 richedit: WM_SETTEXT must immediately autodetect URLs, without waiting for a WM_CHAR http://bugs.winehq.org/attachment.cgi?id=12762 richedit: add (more) tests for URL autodetection on WM_CHAR, make them pass under Wine http://bugs.winehq.org/attachment.cgi?id=12763 richedit: fix for the semantics of the flags for some effects reported by EM_GETCHARFORMAT http://bugs.winehq.org/attachment.cgi?id=12764 richedit: add tests for URL autodetection for EM_SETTEXTEX, make them pass under Wine http://bugs.winehq.org/attachment.cgi?id=12765 richedit: add tests for URL autodetection for EM_REPLACESEL, make them pass under Wine http://bugs.winehq.org/attachment.cgi?id=12847 richedit: Insertion style must NOT be cleared unless selection actually changed
Tests show that when not in need to scroll, native richedit set the page, minimum and maximum ranges of the vertical scrollbar to zero. This patch is required for the next one to apply cleanly.
http://bugs.winehq.org/show_bug.cgi?id=12311
Alex Villacís Lasso a_villacis@palosanto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Difficulty|--- |Days Keywords| |patch
--- Comment #4 from Alex Villacís Lasso a_villacis@palosanto.com 2008-05-13 11:59:17 --- Adding patch keyword
http://bugs.winehq.org/show_bug.cgi?id=12311
--- Comment #5 from Alex Villacís Lasso a_villacis@palosanto.com 2008-05-13 12:13:38 --- Created an attachment (id=13024) --> (http://bugs.winehq.org/attachment.cgi?id=13024) richedit: do not hide or show vertical scrollbar if app hides or shows it behind our back
Finally found the root cause of the non-updating of the text window. To apply, first follow the instructions attached for previous patch, to get this one to apply cleanly.
What is happening is that the application has its own window class to show the text window, which delegates to richedit for most of the actual display, but also calls ShowScrollBar() on receiving WM_SIZE *after* the message has been processed by richedit window proc. It seems the app wants to show the vertical scrollbar at all times, overriding the default richedit behavior of hiding it when not needed, but does not bother to use the ES_DISABLENOSCROLL style, so it calls ShowScrollBar() to show the scrollbar after WM_SIZE decided to hide it.
Native richedit somehow detects that the scrollbars have been messed up with outside of richedit logic and does not attempt to modify them. In particular, a WM_SIZE triggered by the showing of the bars (and consequent resize of the client area) does not trigger an auto-hide of the scrollbar if the scrollbar was forcibly shown. In builtin, it does, resulting in a childish recursive yanking back and forth between the app winproc override ("no!, I want the bars to be shown!") and the builtin richedit winproc ("no!, the bars should be hidden!") with an end result of an application hang. This patch fixes the yanking in a way similar to native richedit.
Please note that this patch does NOT make the application usable yet, it merely fixes this issue and exposes the next issue, which is a crash by invalid memory access when the mouse pointer is moved over the richedit window.
From git commit:
Some applications (such as the one on bug #12311) have never heard of ES_DISABLENOSCROLL and attempt to force scrollbars to be always shown (with ShowScrollBar() or similar) when otherwise richedit would hide them. If richedit attempts to wrestle control back, a recursive loop of requests can result if app overrides WM_SIZE behavior. So let the app have its way. Richedit should reclaim control when forced visibility matches default automatic behavior. Tests to verify this behavior.
http://bugs.winehq.org/show_bug.cgi?id=12311
--- Comment #6 from Alex Villacís Lasso a_villacis@palosanto.com 2008-05-14 17:21:32 --- Created an attachment (id=13064) --> (http://bugs.winehq.org/attachment.cgi?id=13064) richedit: text that does not need scrollbar should also result in a scrollbar range of zero
The empty text is just one special case of an apparent rule that text that does not scroll (nonempty or empty) should also result in a scroll range of zero. Patch includes tests.
http://bugs.winehq.org/show_bug.cgi?id=12311
Alex Villacís Lasso a_villacis@palosanto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #13064|0 |1 is obsolete| |
--- Comment #7 from Alex Villacís Lasso a_villacis@palosanto.com 2008-05-15 10:34:23 --- Created an attachment (id=13081) --> (http://bugs.winehq.org/attachment.cgi?id=13081) richedit: text that does not need scrollbar should also result in a scrollbar range of zero - try 2
The previous version resulted in a misassignment of the range when scrollbars forced on but scrollrange makes scrollbar visible. This version fixes it.
http://bugs.winehq.org/show_bug.cgi?id=12311
Alex Villacís Lasso a_villacis@palosanto.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #13022|0 |1 is obsolete| | Attachment #13024|0 |1 is obsolete| | Attachment #13081|0 |1 is obsolete| |
--- Comment #8 from Alex Villacís Lasso a_villacis@palosanto.com 2008-06-30 16:05:57 --- Created an attachment (id=14487) --> (http://bugs.winehq.org/attachment.cgi?id=14487) richedit: do not read actual scrollbar state for scrollbar update, use internal state instead
Previous patches were incorrect. The root cause of the bug is that native ignores the current scroll range of the scrollbars, but builtin reads the actual state of the bars. When the app forces visibility, the resulting WM_SIZE does nothing to native, since it operates from some internal copy. Builtin attempts to restore invisibility from text range, but then the app again forces visibility, with the end result of a recursive message loop. Attached patch fixes and tests for this behavior.
http://bugs.winehq.org/show_bug.cgi?id=12311
--- Comment #9 from Alex Villacís Lasso a_villacis@palosanto.com 2008-07-29 13:06:14 --- Patch for recursive scrollbar loop has been committed to current git.
As stated before, this just fixes the recursive loop. A subsequent crash when moving the mouse cursor over the text window is yet to be fixed.
http://bugs.winehq.org/show_bug.cgi?id=12311
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Version|CVS/GIT |unspecified
--- Comment #10 from Austin English austinenglish@gmail.com 2009-01-19 15:14:47 --- Removing deprecated CVS/GIT version tag. Please retest in current git. If the bug is still present in today's wine, but was not present in some earlier version of wine, please update version field to earliest known version of wine that had the bug. Thanks!
http://bugs.winehq.org/show_bug.cgi?id=12311
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|download |
--- Comment #11 from Austin English austinenglish@gmail.com 2010-06-12 00:58:39 --- Download url is dead, please update and retest in 1.2-rc3.
http://bugs.winehq.org/show_bug.cgi?id=12311
Andrew Nguyen arethusa26@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download Version|unspecified |0.9.58.
--- Comment #12 from Andrew Nguyen arethusa26@gmail.com 2010-06-12 14:10:33 --- I've reuploaded the installer to fix the URL. The issues persist in wine-1.2-rc3.
http://bugs.winehq.org/show_bug.cgi?id=12311
nathan.n saturn_systems@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |saturn_systems@yahoo.com
--- Comment #13 from nathan.n saturn_systems@yahoo.com 2010-11-01 23:46:22 CDT --- Present in wine 1.3.6
"winetricks riched20" stops the program from freezing but does not make the program usable
http://bugs.winehq.org/show_bug.cgi?id=12311
Frédéric Delanoy frederic.delanoy@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |frederic.delanoy@gmail.com
--- Comment #14 from Frédéric Delanoy frederic.delanoy@gmail.com 2011-05-22 05:14:14 CDT --- Confirmed in 1.3.20
http://bugs.winehq.org/show_bug.cgi?id=12311
--- Comment #15 from Frédéric Delanoy frederic.delanoy@gmail.com 2013-07-07 04:24:51 CDT --- Still in wine-1.6-rc4-52-g9a0b434
https://bugs.winehq.org/show_bug.cgi?id=12311
Teras teras@luukku.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |teras@luukku.com
--- Comment #16 from Teras teras@luukku.com --- Download link is dead. This could quite well be fixed meanwhile.
https://bugs.winehq.org/show_bug.cgi?id=12311
super_man@post.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net, | |super_man@post.com
https://bugs.winehq.org/show_bug.cgi?id=12311
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |NEEDINFO
--- Comment #17 from Anastasius Focht focht@gmx.net --- Hello folks,
please change the summary to target a specific richedit problem. Meta-bugs "make app X to work" should be avoided!
Regards
https://bugs.winehq.org/show_bug.cgi?id=12311
Aaron Franke arnfranke@yahoo.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |arnfranke@yahoo.com
--- Comment #18 from Aaron Franke arnfranke@yahoo.com --- Is this still an issue in Wine 2.6?
https://bugs.winehq.org/show_bug.cgi?id=12311
Frédéric Delanoy frederic.delanoy@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEEDINFO |RESOLVED Resolution|--- |FIXED
--- Comment #19 from Frédéric Delanoy frederic.delanoy@gmail.com --- Works with wine-2.6-208-ge49feb63f4
https://bugs.winehq.org/show_bug.cgi?id=12311
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #20 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 2.7.