1 diff -rbu2 microwin.orig/src/mwin/winevent.c microwin/src/mwin/winevent.c
 
   2 --- microwin.orig/src/mwin/winevent.c   Sun Nov 26 04:57:52 2000
 
   3 +++ microwin/src/mwin/winevent.c        Thu Jul  5 17:08:35 2001
 
   6         /* then possibly send user mouse message*/
 
   7 -       if(hittest == HTCLIENT) {
 
   8 +       if(hittest == HTCLIENT || hwnd == GetCapture()) {
 
  11 diff -rbu2 microwin.orig/src/mwin/winuser.c microwin/src/mwin/winuser.c
 
  12 --- microwin.orig/src/mwin/winuser.c    Wed Jul  5 01:36:42 2000
 
  13 +++ microwin/src/mwin/winuser.c Mon Jul  2 13:11:51 2001
 
  18 + * A helper function for sharing code between PeekMessage and GetMessage
 
  22 -PeekMessage(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax,
 
  24 +PeekMessageHelper(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax,
 
  25 +       UINT wRemoveMsg, BOOL returnIfEmptyQueue)
 
  29         /* check if no messages in queue*/
 
  30         if(mwMsgHead.head == NULL) {
 
  31 +                /* Added by JACS so it doesn't reach MwSelect */
 
  32 +                if (returnIfEmptyQueue)
 
  36                 /* check all windows for pending paint messages*/
 
  40 +PeekMessage(LPMSG lpMsg, HWND hwnd, UINT uMsgFilterMin, UINT uMsgFilterMax,
 
  43 +        /* Never wait in MwSelect: pass TRUE */
 
  44 +        return PeekMessageHelper(lpMsg, hwnd, uMsgFilterMin, uMsgFilterMax, wRemoveMsg, TRUE);
 
  48  GetMessage(LPMSG lpMsg,HWND hwnd,UINT wMsgFilterMin,UINT wMsgFilterMax)
 
  51          * so this code will work
 
  53 -       while(!PeekMessage(lpMsg, hwnd, wMsgFilterMin, wMsgFilterMax,PM_REMOVE))
 
  54 +        /* Always wait in MwSelect if there are messages: pass FALSE */
 
  55 +       while(!PeekMessageHelper(lpMsg, hwnd, wMsgFilterMin, wMsgFilterMax,PM_REMOVE, FALSE))
 
  57         return lpMsg->message != WM_QUIT;