[Bug 12311] Corman Lisp requires implementations for richedit stubs

wine-bugs at winehq.org wine-bugs at winehq.org
Tue May 13 12:14:05 CDT 2008


http://bugs.winehq.org/show_bug.cgi?id=12311





--- Comment #5 from Alex Villacís Lasso <a_villacis at 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.



More information about the wine-bugs mailing list