1diff -rbu2 ../microwindows-0.89pre8.orig/src/config ./src/config
2--- ../microwindows-0.89pre8.orig/src/config	Fri Dec 21 14:07:18 2001
3+++ ./src/config	Fri Dec 21 14:14:37 2001
4@@ -47,7 +47,7 @@
5 #
6 ####################################################################
7-OPTIMIZE                 = Y
8-DEBUG                    = N
9-VERBOSE                  = N
10+OPTIMIZE                 = N
11+DEBUG                    = Y
12+VERBOSE                  = Y
13 
14 ####################################################################
15@@ -191,5 +191,5 @@
16 #
17 ####################################################################
18-ERASEMOVE                = Y
19+ERASEMOVE                = N
20 UPDATEREGIONS            = Y
21 
22@@ -216,5 +216,5 @@
23 
24 # X Window screen, mouse and kbd drivers
25-X11                      = N
26+X11                      = Y
27 
28 ifeq ($(X11), Y)
29diff -rbu2 ../microwindows-0.89pre8.orig/src/mwin/winevent.c ./src/mwin/winevent.c
30--- ../microwindows-0.89pre8.orig/src/mwin/winevent.c	Fri Dec 21 14:07:21 2001
31+++ ./src/mwin/winevent.c	Fri Dec 21 14:10:59 2001
32@@ -167,5 +167,5 @@
33 
34 	/* then possibly send user mouse message*/
35-	if(hittest == HTCLIENT) {
36+	if(hittest == HTCLIENT || hwnd == GetCapture()) {
37 		pt.x = cursorx;
38 		pt.y = cursory;
39Only in ./src/mwin: winevent.c~
40diff -rbu2 ../microwindows-0.89pre8.orig/src/mwin/winuser.c ./src/mwin/winuser.c
41--- ../microwindows-0.89pre8.orig/src/mwin/winuser.c	Fri Dec 21 14:07:21 2001
42+++ ./src/mwin/winuser.c	Fri Dec 21 14:10:59 2001
43@@ -137,7 +137,11 @@
44 }
45 
46+/*
47+ * A helper function for sharing code between PeekMessage and GetMessage
48+ */
49+
50 BOOL WINAPI
51-PeekMessage(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax,
52-	UINT wRemoveMsg)
53+PeekMessageHelper(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax,
54+	UINT wRemoveMsg, BOOL returnIfEmptyQueue)
55 {
56 	HWND	wp;
57@@ -146,4 +150,8 @@
58 	/* check if no messages in queue*/
59 	if(mwMsgHead.head == NULL) {
60+                /* Added by JACS so it doesn't reach MwSelect */
61+                if (returnIfEmptyQueue)
62+                    return FALSE;
63+
64 #if PAINTONCE
65 		/* check all windows for pending paint messages*/
66@@ -177,4 +185,12 @@
67 
68 BOOL WINAPI
69+PeekMessage(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax,
70+	UINT wRemoveMsg)
71+{
72+        /* Never wait in MwSelect: pass TRUE */
73+        return PeekMessageHelper(lpMsg, hwnd, uMsgFilterMin, uMsgFilterMax, wRemoveMsg, TRUE);
74+}
75+
76+BOOL WINAPI
77 GetMessage(LPMSG lpMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax)
78 {
79@@ -183,5 +199,6 @@
80 	 * so this code will work
81 	 */
82-	while(!PeekMessage(lpMsg, hwnd, wMsgFilterMin, wMsgFilterMax,PM_REMOVE))
83+        /* Always wait in MwSelect if there are messages: pass FALSE */
84+	while(!PeekMessageHelper(lpMsg, hwnd, wMsgFilterMin, wMsgFilterMax,PM_REMOVE, FALSE))
85 		continue;
86 	return lpMsg->message != WM_QUIT;
87