Here is a simple patch that prevents menus from crashing (see wine-devel for details). This patch is quite hacky but it does fix a single real, verified problem and likely a bunch of unverified problems. Proper fix would be quite complicated, at least process_cooked_mouse_message and process_raw_mouse_message need to be redesigned and possibly also wineserver message queue routines. Changelog: Prevent some illegal messages when mouse has been captured. Index: wine/windows/message.c =================================================================== RCS file: /home/wine/wine/windows/message.c,v retrieving revision 1.129 diff -u -r1.129 message.c --- wine/windows/message.c 2001/11/06 22:28:20 1.129 +++ wine/windows/message.c 2001/11/23 19:59:13 @@ -458,6 +458,21 @@ if (remove) update_queue_key_state( raw_message, 0 ); + /* + * FIXME: Workaround that prevents some illegal messages + * when enabling capture mode. Real fix should handle + * every different class of illegal messages that can + * be received when enabling/disabling capture. + * (Hint: These happen because many raw messages + * can be cooked before a cooked message is processed.) + */ + if (GetCapture() && + msg->message >= WM_NCMOUSEFIRST && + msg->message <= WM_NCMOUSELAST) + { + return FALSE; + } + if (HOOK_IsHooked( WH_MOUSE )) { MOUSEHOOKSTRUCT hook; -- Jukka Heinonen <http://www.iki.fi/jhei/>