Excessive redraw in Lotus Notes with Wine 20011108

Glenn Schrader geschrader at mediaone.net
Sun Nov 18 19:30:58 CST 2001


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

-------------- next part --------------
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);
 


More information about the wine-devel mailing list