New breakages

gerard patel gerard.patel at asi.fr
Wed May 2 17:08:38 CDT 2001


At 02:30 PM 25/04/2001 +0200, I wrote:
>At 09:30 AM 25/04/2001 +0200, I wrote:
>
>Also several apps are not erasing parts of the screen : among others the word viewer 97
>(freeware downloadable). A few other strange crashes. 

Still talking to myself... I  feel I'm soon one of these sad cases talking 
alone in the street ;-)

I have found one way to fix a lot of the ugliness that the evil patch of
24 april has done; by doing :

--- dce.c.orig  Thu May  3 00:02:35 2001
+++ dce.c       Wed May  2 23:49:19 2001
@@ -551,7 +551,7 @@
     dce->DCXflags &= ~DCX_DCEDIRTY;
     hdc = dce->hDC;
 
-    if (bUpdateVisRgn) SetHookFlags16( hdc, DCHF_INVALIDATEVISRGN ); /* force update */
+    if (bUpdateVisRgn) flags |= 0x8000;
 
     if (!USER_Driver.pGetDC( hwnd, hdc, hrgnClip, flags )) hdc = 0;
            
and 

--- winpos.c.orig       Wed Apr 25 01:28:52 2001
+++ winpos.c    Wed May  2 23:49:01 2001
@@ -355,7 +355,8 @@
         TSXSetClipOrigin( display, physDev->gc, dc->DCOrgX, dc->DCOrgY );
 #endif
 
-    updateVisRgn = (dc->flags & DC_DIRTY) != 0;
+    updateVisRgn = (flags & 0x8000) != 0;
+    dc->flags &= ~DC_DIRTY;
     GDI_ReleaseObj( hdc );
 
     if (updateVisRgn)   

I  got the following results :

Word viewer 32 bits, 16 bits, Lotus Notes (AFAICT), Statview, QuattroPro 1, and a
few old 16 bits apps I have display more or less as well as before (some crud for WW32
that was not before, though :-/)

Doing things in such a way is more conforming to the way they were done before 
- and it seems more simple that the SetHookFlags trick IMHO ;-)

Gerard





More information about the wine-devel mailing list