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