http://bugs.winehq.org/show_bug.cgi?id=9856
--- Comment #6 from Andrey Turkin andrey.turkin@gmail.com 2008-09-25 10:01:23 --- Created an attachment (id=16267) --> (http://bugs.winehq.org/attachment.cgi?id=16267) one-liner to fix this bug
The problem is not with winecfg but with user32 or comctl32. Actual hang occurs in user32/dialog.c while trying to find accelerator for Alt-<something> if window what received keystroke (i.e. currently focused control) or one of its parents are invisible or disabled. This can happen with property sheet control after tab change (old tab dialog becomes invisible but focus still somewhere in it); I'm not sure what should be fixed - attached one-liner fixes described case and this bug, but same thing can easily occur elsewhere. Either DIALOG_IsAccelerator should be fixed to not hang on such cases, or window-management code should be fixed to move focus elsewhere when control becomes invisible.