WinWorkstation.st
changeset 3735 d8d32e0ff26e
parent 3721 c3e5152a3b66
child 3741 42ca299b104f
--- a/WinWorkstation.st	Thu Sep 19 11:03:29 2002 +0200
+++ b/WinWorkstation.st	Mon Sep 23 22:32:48 2002 +0200
@@ -45,11 +45,12 @@
 #define xxHANDLE_VIEWGRAVITY   /* not yet working */
 #define COMPRESS_WINDOWPOSCHANGED
 
+#define xxLATE_GENERATE_EXPOSE              /* get update region from stx thread */
+#define xxNO_CLEAR_FOR_WM_PAINT           /* do not fill exposed areas with bgColor */
 #define xxLATE_CLEAR_FOR_WM_PAINT         /* fill exposed areas with bgColor in ST/X thread (instead of in event-thread) */
 					/* seems to be needed to avoid DC conflicts */
-#define NO_CLEAR_FOR_WM_PAINT           /* do not fill exposed areas with bgColor */
-
-#if 0
+
+#if 0 /* DOES NOT WORK */
 #define CACHE_LAST_DC                   /* remember last DC in gcData */
 #define CACHE_LAST_PEN                  /* remember last pen in gcData */
 #define CACHE_LAST_BRUSH                /* remember last brush in gcData */
@@ -445,6 +446,7 @@
 #define __WM_GEXPOSE           0x10003
 #define __WM_NOGEXPOSE         0x10004
 #define __WM_ICONIFIED         0x10005
+#define __WM_PAINT             0x10006
 
 static int AltMask = RightAltMask;
 static int MetaMask = LeftAltMask;
@@ -2937,8 +2939,11 @@
 	    {
 		int retVal;
 
+# ifdef LATE_GENERATE_EXPOSE
+		enqEvent(ENQ_AT_END, 0, hWnd, __WM_PAINT, 0, 0, 0, 0, 0, EV_NOTIME);
+# else
 		retVal = __generateExposes(hWnd, NULL, WM_PAINT, WM_PAINT_CLEAR_EARLY);
-
+# endif
 		switch (retVal) {
 		    case -1:  /* error */
 			*pDefault = 0;
@@ -5927,179 +5932,179 @@
     int arg;
 
     if (__isSmallInteger(aNumberOrSymbol)) {
-        arg = __intVal(aNumberOrSymbol);
+	arg = __intVal(aNumberOrSymbol);
     } else if ((aNumberOrSymbol == @symbol(swapButton)) || (aNumberOrSymbol == @symbol(SM_SWAPBUTTON))) {
-        arg = SM_SWAPBUTTON;
-        isBool = 1;
+	arg = SM_SWAPBUTTON;
+	isBool = 1;
     } else if ((aNumberOrSymbol == @symbol(mousePresent)) || (aNumberOrSymbol == @symbol(SM_MOUSEPRESENT))) {
-        arg = SM_MOUSEPRESENT;
-        isBool = 1;
+	arg = SM_MOUSEPRESENT;
+	isBool = 1;
     } else if ((aNumberOrSymbol == @symbol(mouseButtons)) || (aNumberOrSymbol == @symbol(SM_CMOUSEBUTTONS))) {
-        arg = SM_CMOUSEBUTTONS;
+	arg = SM_CMOUSEBUTTONS;
     } else if ((aNumberOrSymbol == @symbol(iconWidth)) || (aNumberOrSymbol == @symbol(SM_CXICON))) {
-        arg = SM_CXICON;
+	arg = SM_CXICON;
     } else if ((aNumberOrSymbol == @symbol(iconHeight)) || (aNumberOrSymbol == @symbol(SM_CYICON))) {
-        arg = SM_CYICON;
+	arg = SM_CYICON;
     } else if ((aNumberOrSymbol == @symbol(iconWidth)) || (aNumberOrSymbol == @symbol(SM_CXDOUBLECLK))) {
-        arg = SM_CXDOUBLECLK;
+	arg = SM_CXDOUBLECLK;
     } else if ((aNumberOrSymbol == @symbol(iconHeight)) || (aNumberOrSymbol == @symbol(SM_CYDOUBLECLK))) {
-        arg = SM_CYDOUBLECLK;
+	arg = SM_CYDOUBLECLK;
     } else if ((aNumberOrSymbol == @symbol(cursorWidth)) || (aNumberOrSymbol == @symbol(SM_CXCURSOR))) {
-        arg = SM_CXCURSOR;
+	arg = SM_CXCURSOR;
     } else if ((aNumberOrSymbol == @symbol(cursorHeight)) || (aNumberOrSymbol == @symbol(SM_CYCURSOR))) {
-        arg = SM_CYCURSOR;
+	arg = SM_CYCURSOR;
     } else if ((aNumberOrSymbol == @symbol(captionHeight)) || (aNumberOrSymbol == @symbol(SM_CYCAPTION))) {
-        arg = SM_CYCAPTION;
+	arg = SM_CYCAPTION;
     } else if ((aNumberOrSymbol == @symbol(resizeFrameWidth)) || (aNumberOrSymbol == @symbol(SM_CXFRAME))) {
-        arg = SM_CXFRAME;
+	arg = SM_CXFRAME;
     } else if ((aNumberOrSymbol == @symbol(resizeFrameHeight)) || (aNumberOrSymbol == @symbol(SM_CYFRAME))) {
-        arg = SM_CYFRAME;
+	arg = SM_CYFRAME;
     } else if ((aNumberOrSymbol == @symbol(borderFrameWidth)) || (aNumberOrSymbol == @symbol(SM_CXBORDER))) {
-        arg = SM_CXBORDER;
+	arg = SM_CXBORDER;
     } else if ((aNumberOrSymbol == @symbol(borderFrameHeight)) || (aNumberOrSymbol == @symbol(SM_CYBORDER))) {
-        arg = SM_CYBORDER;
+	arg = SM_CYBORDER;
     } else if (aNumberOrSymbol == @symbol(SM_CXDLGFRAME)) {
-        arg = SM_CXDLGFRAME;
+	arg = SM_CXDLGFRAME;
     } else if (aNumberOrSymbol == @symbol(SM_CYDLGFRAME)) {
-        arg = SM_CYDLGFRAME;
+	arg = SM_CYDLGFRAME;
     } else if ((aNumberOrSymbol == @symbol(fullScreenWindowWidth)) || (aNumberOrSymbol == @symbol(SM_CXFULLSCREEN))) {
-        arg = SM_CXFULLSCREEN;
+	arg = SM_CXFULLSCREEN;
     } else if ((aNumberOrSymbol == @symbol(fullScreenWindowHeight)) || (aNumberOrSymbol == @symbol(SM_CYFULLSCREEN))) {
-        arg = SM_CYFULLSCREEN;
+	arg = SM_CYFULLSCREEN;
     } else if ((aNumberOrSymbol == @symbol(screenWidth)) || (aNumberOrSymbol == @symbol(SM_CXSCREEN))) {
-        arg = SM_CXSCREEN;
+	arg = SM_CXSCREEN;
     } else if ((aNumberOrSymbol == @symbol(screenHeight)) || (aNumberOrSymbol == @symbol(SM_CYSCREEN))) {
-        arg = SM_CYSCREEN;
+	arg = SM_CYSCREEN;
     } else if ((aNumberOrSymbol == @symbol(minWindowWidth)) || (aNumberOrSymbol == @symbol(SM_CXMIN))) {
-        arg = SM_CXMIN;
+	arg = SM_CXMIN;
     } else if ((aNumberOrSymbol == @symbol(minWindowHeight)) || (aNumberOrSymbol == @symbol(SM_CYMIN))) {
-        arg = SM_CYMIN;
+	arg = SM_CYMIN;
     } else if ((aNumberOrSymbol == @symbol(vScrollbarWidth)) || (aNumberOrSymbol == @symbol(SM_CXVSCROLL))) {
-        arg = SM_CXVSCROLL;
+	arg = SM_CXVSCROLL;
     } else if ((aNumberOrSymbol == @symbol(hScrollbarHeight)) || (aNumberOrSymbol == @symbol(SM_CYHSCROLL))) {
-        arg = SM_CYHSCROLL;
+	arg = SM_CYHSCROLL;
     } else if ((aNumberOrSymbol == @symbol(vThumbHeight)) || (aNumberOrSymbol == @symbol(SM_CYVTHUMB))) {
-        arg = SM_CYVTHUMB;
+	arg = SM_CYVTHUMB;
     } else if ((aNumberOrSymbol == @symbol(hThumbWidth)) || (aNumberOrSymbol == @symbol(SM_CXHTHUMB))) {
-        arg = SM_CXHTHUMB;
+	arg = SM_CXHTHUMB;
     } else if ((aNumberOrSymbol == @symbol(SM_CXSIZE))) {
-        arg = SM_CXSIZE;
+	arg = SM_CXSIZE;
     } else if ((aNumberOrSymbol == @symbol(SM_CYSIZE))) {
-        arg = SM_CYSIZE;
+	arg = SM_CYSIZE;
     } else if ((aNumberOrSymbol == @symbol(SM_CYVSCROLL))) {
-        arg = SM_CYVSCROLL;
+	arg = SM_CYVSCROLL;
     } else if ((aNumberOrSymbol == @symbol(SM_CXHSCROLL))) {
-        arg = SM_CXHSCROLL;
+	arg = SM_CXHSCROLL;
     } else if ((aNumberOrSymbol == @symbol(SM_CXMINTRACK))) {
-        arg = SM_CXMINTRACK;
+	arg = SM_CXMINTRACK;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMINTRACK))) {
-        arg = SM_CYMINTRACK;
+	arg = SM_CYMINTRACK;
     } else if ((aNumberOrSymbol == @symbol(SM_CXICONSPACING))) {
-        arg = SM_CXICONSPACING;
+	arg = SM_CXICONSPACING;
     } else if ((aNumberOrSymbol == @symbol(SM_CYICONSPACING))) {
-        arg = SM_CYICONSPACING;
+	arg = SM_CYICONSPACING;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMENU))) {
-        arg = SM_CYMENU;
+	arg = SM_CYMENU;
     } else if ((aNumberOrSymbol == @symbol(SM_MENUDROPALIGNMENT))) {
-        arg = SM_MENUDROPALIGNMENT;
+	arg = SM_MENUDROPALIGNMENT;
     } else if ((aNumberOrSymbol == @symbol(SM_PENWINDOWS))) {
-        arg = SM_PENWINDOWS;
+	arg = SM_PENWINDOWS;
     } else if ((aNumberOrSymbol == @symbol(SM_DBCSENABLED))) {
-        arg = SM_DBCSENABLED;
+	arg = SM_DBCSENABLED;
     } else if ((aNumberOrSymbol == @symbol(SM_CXFIXEDFRAME))) {
-        arg = SM_CXFIXEDFRAME;
+	arg = SM_CXFIXEDFRAME;
     } else if ((aNumberOrSymbol == @symbol(SM_CYFIXEDFRAME))) {
-        arg = SM_CYFIXEDFRAME;
+	arg = SM_CYFIXEDFRAME;
     } else if ((aNumberOrSymbol == @symbol(SM_CXSIZEFRAME))) {
-        arg = SM_CXSIZEFRAME;
+	arg = SM_CXSIZEFRAME;
     } else if ((aNumberOrSymbol == @symbol(SM_CYSIZEFRAME))) {
-        arg = SM_CYSIZEFRAME;
+	arg = SM_CYSIZEFRAME;
     } else if ((aNumberOrSymbol == @symbol(SM_CYKANJIWINDOW))) {
-        arg = SM_CYKANJIWINDOW;
+	arg = SM_CYKANJIWINDOW;
     } else if ((aNumberOrSymbol == @symbol(SM_SECURE))) {
-        arg = SM_SECURE;
+	arg = SM_SECURE;
     } else if ((aNumberOrSymbol == @symbol(SM_CXEDGE))) {
-        arg = SM_CXEDGE;
+	arg = SM_CXEDGE;
     } else if ((aNumberOrSymbol == @symbol(SM_CYEDGE))) {
-        arg = SM_CYEDGE;
+	arg = SM_CYEDGE;
     } else if ((aNumberOrSymbol == @symbol(SM_CXMINSPACING))) {
-        arg = SM_CXMINSPACING;
+	arg = SM_CXMINSPACING;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMINSPACING))) {
-        arg = SM_CYMINSPACING;
+	arg = SM_CYMINSPACING;
     } else if ((aNumberOrSymbol == @symbol(SM_CXSMICON))) {
-        arg = SM_CXSMICON;
+	arg = SM_CXSMICON;
     } else if ((aNumberOrSymbol == @symbol(SM_CYSMICON))) {
-        arg = SM_CYSMICON;
+	arg = SM_CYSMICON;
     } else if ((aNumberOrSymbol == @symbol(SM_CYSMCAPTION))) {
-        arg = SM_CYSMCAPTION;
+	arg = SM_CYSMCAPTION;
     } else if ((aNumberOrSymbol == @symbol(SM_CXSMSIZE))) {
-        arg = SM_CXSMSIZE;
+	arg = SM_CXSMSIZE;
     } else if ((aNumberOrSymbol == @symbol(SM_CYSMSIZE))) {
-        arg = SM_CYSMSIZE;
+	arg = SM_CYSMSIZE;
     } else if ((aNumberOrSymbol == @symbol(SM_CXMENUSIZE))) {
-        arg = SM_CXMENUSIZE;
+	arg = SM_CXMENUSIZE;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMENUSIZE))) {
-        arg = SM_CYMENUSIZE;
+	arg = SM_CYMENUSIZE;
     } else if ((aNumberOrSymbol == @symbol(SM_ARRANGE))) {
-        arg = SM_ARRANGE;
+	arg = SM_ARRANGE;
     } else if ((aNumberOrSymbol == @symbol(SM_CXMINIMIZED))) {
-        arg = SM_CXMINIMIZED;
+	arg = SM_CXMINIMIZED;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMINIMIZED))) {
-        arg = SM_CYMINIMIZED;
+	arg = SM_CYMINIMIZED;
     } else if ((aNumberOrSymbol == @symbol(SM_CXMAXTRACK))) {
-        arg = SM_CXMAXTRACK;
+	arg = SM_CXMAXTRACK;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMAXTRACK))) {
-        arg = SM_CYMAXTRACK;
+	arg = SM_CYMAXTRACK;
     } else if ((aNumberOrSymbol == @symbol(SM_CXMAXIMIZED))) {
-        arg = SM_CXMAXIMIZED;
+	arg = SM_CXMAXIMIZED;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMAXIMIZED))) {
-        arg = SM_CYMAXIMIZED;
+	arg = SM_CYMAXIMIZED;
     } else if ((aNumberOrSymbol == @symbol(SM_NETWORK))) {
-        arg = SM_NETWORK;
+	arg = SM_NETWORK;
     } else if ((aNumberOrSymbol == @symbol(SM_CXDRAG))) {
-        arg = SM_CXDRAG;
+	arg = SM_CXDRAG;
     } else if ((aNumberOrSymbol == @symbol(SM_CYDRAG))) {
-        arg = SM_CYDRAG;
+	arg = SM_CYDRAG;
     } else if ((aNumberOrSymbol == @symbol(SM_NETWORK))) {
-        arg = SM_NETWORK;
+	arg = SM_NETWORK;
     } else if ((aNumberOrSymbol == @symbol(SM_SHOWSOUNDS))) {
-        arg = SM_SHOWSOUNDS;
+	arg = SM_SHOWSOUNDS;
     } else if ((aNumberOrSymbol == @symbol(SM_CXMENUCHECK))) {
-        arg = SM_CXMENUCHECK;
+	arg = SM_CXMENUCHECK;
     } else if ((aNumberOrSymbol == @symbol(SM_CYMENUCHECK))) {
-        arg = SM_CYMENUCHECK;
+	arg = SM_CYMENUCHECK;
     } else if ((aNumberOrSymbol == @symbol(SM_SLOWMACHINE))) {
-        arg = SM_SLOWMACHINE;
+	arg = SM_SLOWMACHINE;
     } else if ((aNumberOrSymbol == @symbol(SM_MIDEASTENABLED))) {
-        arg = SM_MIDEASTENABLED;
+	arg = SM_MIDEASTENABLED;
     } else if ((aNumberOrSymbol == @symbol(SM_MOUSEWHEELPRESENT))) {
-        arg = SM_MOUSEWHEELPRESENT;
+	arg = SM_MOUSEWHEELPRESENT;
     } else if ((aNumberOrSymbol == @symbol(SM_XVIRTUALSCREEN))) {
-        arg = SM_XVIRTUALSCREEN;
+	arg = SM_XVIRTUALSCREEN;
     } else if ((aNumberOrSymbol == @symbol(SM_YVIRTUALSCREEN))) {
-        arg = SM_YVIRTUALSCREEN;
+	arg = SM_YVIRTUALSCREEN;
     } else if ((aNumberOrSymbol == @symbol(SM_CXVIRTUALSCREEN))) {
-        arg = SM_CXVIRTUALSCREEN;
+	arg = SM_CXVIRTUALSCREEN;
     } else if ((aNumberOrSymbol == @symbol(SM_CYVIRTUALSCREEN))) {
-        arg = SM_CYVIRTUALSCREEN;
+	arg = SM_CYVIRTUALSCREEN;
     } else if ((aNumberOrSymbol == @symbol(SM_CMONITORS))) {
-        arg = SM_CMONITORS;
+	arg = SM_CMONITORS;
     } else if ((aNumberOrSymbol == @symbol(SM_SAMEDISPLAYFORMAT))) {
-        arg = SM_SAMEDISPLAYFORMAT;
+	arg = SM_SAMEDISPLAYFORMAT;
     } else if ((aNumberOrSymbol == @symbol(SM_IMMENABLED))) {
-        arg = SM_IMMENABLED;
+	arg = SM_IMMENABLED;
     } else if ((aNumberOrSymbol == @symbol(SM_DEBUG))) {
-        arg = SM_DEBUG;
+	arg = SM_DEBUG;
 #ifdef SM_REMOTESESSION
     } else if ((aNumberOrSymbol == @symbol(SM_REMOTESESSION))) {
-        arg = SM_REMOTESESSION;
+	arg = SM_REMOTESESSION;
 #endif
     } else {
-        RETURN (nil);
+	RETURN (nil);
     }
     info = GetSystemMetrics(arg);
     if (isBool) {
-        RETURN (info ? true : false);
+	RETURN (info ? true : false);
     }
     RETURN (__MKSMALLINT(info));
 %}
@@ -6124,54 +6129,54 @@
     char buffer[1024];
 
     if (__isSmallInteger(aNumberOrSymbol)) {
-        arg = __intVal(aNumberOrSymbol);
+	arg = __intVal(aNumberOrSymbol);
     } else if (aNumberOrSymbol == @symbol(SPI_GETDESKWALLPAPER)) {
-        arg = SPI_GETDESKWALLPAPER;
-        isString = 1;
+	arg = SPI_GETDESKWALLPAPER;
+	isString = 1;
 #ifdef SPI_GETDROPSHADOW
     } else if (aNumberOrSymbol == @symbol(SPI_GETDROPSHADOW)) {
-        arg = SPI_GETDROPSHADOW;
-        isBool = 1;
+	arg = SPI_GETDROPSHADOW;
+	isBool = 1;
 #endif
 #ifdef SPI_GETFLATMENU
     } else if (aNumberOrSymbol == @symbol(SPI_GETFLATMENU)) {
-        arg = SPI_GETFLATMENU;
-        isBool = 1;
+	arg = SPI_GETFLATMENU;
+	isBool = 1;
 #endif
 #ifdef SPI_GETWHEELSCROLLLINES
     } else if (aNumberOrSymbol == @symbol(SPI_GETWHEELSCROLLLINES)) {
-        arg = SPI_GETWHEELSCROLLLINES;
+	arg = SPI_GETWHEELSCROLLLINES;
 #endif
 #ifdef SPI_GETHOTTRACKING
     } else if (aNumberOrSymbol == @symbol(SPI_GETHOTTRACKING)) {
-        arg = SPI_GETHOTTRACKING;
-        isBool = 1;
+	arg = SPI_GETHOTTRACKING;
+	isBool = 1;
 #endif
 #ifdef SPI_GETTOOLTIPANIMATION
     } else if (aNumberOrSymbol == @symbol(SPI_GETTOOLTIPANIMATION)) {
-        arg = SPI_GETTOOLTIPANIMATION;
-        isBool = 1;
+	arg = SPI_GETTOOLTIPANIMATION;
+	isBool = 1;
 #endif
     } else {
-        RETURN (nil);
+	RETURN (nil);
     }
 
     param = 0;
     pRslt = NULL;
     if (isString) {
-        param = sizeof(buffer);
-        pRslt = (void *)buffer;
+	param = sizeof(buffer);
+	pRslt = (void *)buffer;
     }
     info = SystemParametersInfo(arg, param, pRslt, 0);
     if (! info) {
-        RETURN (nil);
+	RETURN (nil);
     }
 
     if (isBool) {
-        RETURN (info ? true : false);
+	RETURN (info ? true : false);
     }
     if (isString) {
-        RETURN (__MKSTRING(buffer));
+	RETURN (__MKSTRING(buffer));
     }
     RETURN (__MKSMALLINT(info));
 %}
@@ -8913,10 +8918,18 @@
 		DPRINTF(("displayRect: no pen\n"));
 	    } else {
 		MoveToEx(hDC, xL, yT, NULL);
-		LineTo(hDC, xL+w, yT);
-		LineTo(hDC, xL+w, yT+h);
-		LineTo(hDC, xL, yT+h);
-		LineTo(hDC, xL, yT);
+#if 0
+		LineTo(hDC, xL+w, yT);     // to top-right
+		LineTo(hDC, xL+w, yT+h);   // to bot-right
+		LineTo(hDC, xL, yT+h);     // to bot-left
+		LineTo(hDC, xL, yT);       // back to top-left
+#else
+		LineTo(hDC, xL+w, yT);       // to top-right
+		LineTo(hDC, xL+w, yT+h);     // to bot-right
+		MoveToEx(hDC, xL, yT, NULL); // back to top-left
+		LineTo(hDC, xL, yT+h);       // to bot-left
+		LineTo(hDC, xL+w, yT+h);     // to bot-right
+#endif
 
 		GcDataReleasePen(hDC, gcData);
 	    }
@@ -9573,31 +9586,31 @@
 "/    aWindow printCR.
 
     IgnoreSysColorChanges ~~ true ifTrue:[
-        "/ first check, if there was really a change
-        "/ (when exceed is running, we get plenty of those messages ...)
-
-        SystemColorValues isNil ifTrue:[
-            SystemColorValues := IdentityDictionary new.
-        ].
-        anyChange := false.
-        self supportedSystemColorKeys do:[:key |
-            |oldValue newValue|
-
-            oldValue := SystemColorValues at:key ifAbsent:nil.
-            newValue := self getSystemColor:key.
-            oldValue ~= newValue ifTrue:[
-                SystemColorValues at:key put:newValue.
-                anyChange := true.
-            ]
-        ].
-        anyChange ifTrue:[
-            "/ TODO: this should go through the sensor ...
-            "/ ...and handled as an event by the views thread.
-            SimpleView readStyleSheetAndUpdateAllStyleCaches.
-            aWindow withAllSubViewsDo:[:aView |
-                aView reinitStyle
-            ]
-        ]
+	"/ first check, if there was really a change
+	"/ (when exceed is running, we get plenty of those messages ...)
+
+	SystemColorValues isNil ifTrue:[
+	    SystemColorValues := IdentityDictionary new.
+	].
+	anyChange := false.
+	self supportedSystemColorKeys do:[:key |
+	    |oldValue newValue|
+
+	    oldValue := SystemColorValues at:key ifAbsent:nil.
+	    newValue := self getSystemColor:key.
+	    oldValue ~= newValue ifTrue:[
+		SystemColorValues at:key put:newValue.
+		anyChange := true.
+	    ]
+	].
+	anyChange ifTrue:[
+	    "/ TODO: this should go through the sensor ...
+	    "/ ...and handled as an event by the views thread.
+	    SimpleView readStyleSheetAndUpdateAllStyleCaches.
+	    aWindow withAllSubViewsDo:[:aView |
+		aView reinitStyle
+	    ]
+	]
     ]
 
     "Modified: / 10.9.1998 / 21:53:34 / cg"
@@ -9913,6 +9926,20 @@
 				   theView);
 		break;
 
+# ifdef LATE_GENERATE_EXPOSE
+	    case __WM_PAINT:
+		{
+		    PAINTSTRUCT ps;
+
+		    __generateExposes(hWnd, NULL, WM_PAINT, 0);
+# if 0
+		    BeginPaint(hWnd, &ps);
+		    EndPaint(hWnd, &ps);
+# endif
+		}
+		break;
+# endif
+
 	    case WM_PAINT:
 		x = ev->ev_x;
 		y = ev->ev_y;
@@ -9922,7 +9949,7 @@
 		if (GetWindow_unmapping(hWnd)) {
 		    fprintf(stderr, "oops - WM_MOUSEENTER for unmapping\n");
 		}
-#ifdef WM_PAINT_CLEAR_LATE
+#if WM_PAINT_CLEAR_LATE
 		__clearWindow(hWnd, x, y, w, h);
 #endif
 #ifdef DEBUG_COLORIZE_WM_PAINT_RECTS2
@@ -15258,6 +15285,6 @@
 !WinWorkstation class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.225 2002-09-05 16:24:32 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libview/WinWorkstation.st,v 1.226 2002-09-23 20:32:48 cg Exp $'
 ! !
 WinWorkstation initialize!