diff -rbu2 ../microwindows-0.89pre8.orig/src/config ./src/config --- ../microwindows-0.89pre8.orig/src/config Fri Dec 21 14:07:18 2001 +++ ./src/config Fri Dec 21 14:14:37 2001 @@ -47,7 +47,7 @@ # #################################################################### -OPTIMIZE = Y -DEBUG = N -VERBOSE = N +OPTIMIZE = N +DEBUG = Y +VERBOSE = Y #################################################################### @@ -191,5 +191,5 @@ # #################################################################### -ERASEMOVE = Y +ERASEMOVE = N UPDATEREGIONS = Y @@ -216,5 +216,5 @@ # X Window screen, mouse and kbd drivers -X11 = N +X11 = Y ifeq ($(X11), Y) diff -rbu2 ../microwindows-0.89pre8.orig/src/mwin/winevent.c ./src/mwin/winevent.c --- ../microwindows-0.89pre8.orig/src/mwin/winevent.c Fri Dec 21 14:07:21 2001 +++ ./src/mwin/winevent.c Fri Dec 21 14:10:59 2001 @@ -167,5 +167,5 @@ /* then possibly send user mouse message*/ - if(hittest == HTCLIENT) { + if(hittest == HTCLIENT || hwnd == GetCapture()) { pt.x = cursorx; pt.y = cursory; Only in ./src/mwin: winevent.c~ diff -rbu2 ../microwindows-0.89pre8.orig/src/mwin/winuser.c ./src/mwin/winuser.c --- ../microwindows-0.89pre8.orig/src/mwin/winuser.c Fri Dec 21 14:07:21 2001 +++ ./src/mwin/winuser.c Fri Dec 21 14:10:59 2001 @@ -137,7 +137,11 @@ } +/* + * A helper function for sharing code between PeekMessage and GetMessage + */ + BOOL WINAPI -PeekMessage(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax, - UINT wRemoveMsg) +PeekMessageHelper(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax, + UINT wRemoveMsg, BOOL returnIfEmptyQueue) { HWND wp; @@ -146,4 +150,8 @@ /* check if no messages in queue*/ if(mwMsgHead.head == NULL) { + /* Added by JACS so it doesn't reach MwSelect */ + if (returnIfEmptyQueue) + return FALSE; + #if PAINTONCE /* check all windows for pending paint messages*/ @@ -177,4 +185,12 @@ BOOL WINAPI +PeekMessage(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax, + UINT wRemoveMsg) +{ + /* Never wait in MwSelect: pass TRUE */ + return PeekMessageHelper(lpMsg, hwnd, uMsgFilterMin, uMsgFilterMax, wRemoveMsg, TRUE); +} + +BOOL WINAPI GetMessage(LPMSG lpMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax) { @@ -183,5 +199,6 @@ * so this code will work */ - while(!PeekMessage(lpMsg, hwnd, wMsgFilterMin, wMsgFilterMax,PM_REMOVE)) + /* Always wait in MwSelect if there are messages: pass FALSE */ + while(!PeekMessageHelper(lpMsg, hwnd, wMsgFilterMin, wMsgFilterMax,PM_REMOVE, FALSE)) continue; return lpMsg->message != WM_QUIT;