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