Toby Haynes wrote:
I've just compiled up Wine 20011108 and given it a little testing. QuickTime installer works fine and QuickTime player comes up, although it wants to be fullscreen most of the time (something to do with strange mouse click handling I think). SameTime installer runs (at least for version 1.5) although I can't get the actual program to start (Unhandled exception).
Lotus Notes 5.0.4 also appears to run fine with this build (I couldn't reply to messages with the October WINE release) but there is one headache-inducing problem. When composing a message or editing a document, the screen redraws for every letter. It does this pretty quickly but the effect is that the screen flashes as I type. It's bad enough that I type with my eyes closed to avoid looking at the screen and edit any mistakes I make at the end. It's not a problem at other times such as reading messages or browsing databases - only editing seems to suffer from this.
Setting double-buffer visuals doesn't seem to help. Managed or desktop configurations both suffer from this.
Does anyone have any clues as to settings to tweak to minimise/stop this happening? I'd rather not go back to 20010326 (my stable backup build) but I will if I can't solve this problem.
Thanks, Toby Haynes
I have been having a similar problem with a different app. Try the attached patch and see if it helps.
--- Glenn Schrader
Index: painting.c =================================================================== RCS file: /home/wine/wine/windows/painting.c,v retrieving revision 1.61 diff -u -r1.61 painting.c --- painting.c 2001/10/16 21:58:59 1.61 +++ painting.c 2001/11/18 22:48:09 @@ -345,23 +345,12 @@
TRACE("hrgnUpdate = %04x, \n", hrgnUpdate);
- if (GetClassLongA( hwnd, GCL_STYLE ) & CS_PARENTDC) - { - /* Don't clip the output to the update region for CS_PARENTDC window */ - if( hrgnUpdate ) - DeleteObject(hrgnUpdate); - lps->hdc = GetDCEx( hwnd, 0, DCX_WINDOWPAINT | DCX_USESTYLE | - (bIcon ? DCX_WINDOW : 0) ); - } - else - { - if( hrgnUpdate ) /* convert to client coordinates */ - OffsetRgn( hrgnUpdate, wndPtr->rectWindow.left - wndPtr->rectClient.left, - wndPtr->rectWindow.top - wndPtr->rectClient.top ); - lps->hdc = GetDCEx(hwnd, hrgnUpdate, DCX_INTERSECTRGN | - DCX_WINDOWPAINT | DCX_USESTYLE | (bIcon ? DCX_WINDOW : 0) ); - /* ReleaseDC() in EndPaint() will delete the region */ - } + if( hrgnUpdate ) /* convert to client coordinates */ + OffsetRgn( hrgnUpdate, wndPtr->rectWindow.left - wndPtr->rectClient.left, + wndPtr->rectWindow.top - wndPtr->rectClient.top ); + lps->hdc = GetDCEx(hwnd, hrgnUpdate, DCX_INTERSECTRGN | + DCX_WINDOWPAINT | DCX_USESTYLE | (bIcon ? DCX_WINDOW : 0) ); + /* ReleaseDC() in EndPaint() will delete the region */
TRACE("hdc = %04x\n", lps->hdc);