Summary: | Вешается wineconsole в графическом режиме | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Анатолий Лютин <vostok> |
Component: | Общее | Assignee: | Анатолий Лютин <vostok> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | enhancement | ||
Priority: | P5 | CC: | lav, vostok |
Version: | 1.0.6 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | Linux | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 584 |
Description
Анатолий Лютин
2007-02-18 17:22:37 MSK
Посе совершенных действий получаем бесконечный цикл сообщений типа: ace:message:SPY_EnterMessage (0x10036) L"&Маленький" message [0087] WM_GETDLGCODE sent from self wp=00000041 lp=0034f3f0 trace:message:SPY_ExitMessage (0x10036) L"&Маленький" message [0087] WM_GETDLGCODE returned 00002040 trace:message:SPY_EnterMessage (0x10036) L"&Маленький" message [0100] WM_KEYDOWN dispatched wp=00000041 lp=001e0001 trace:message:SPY_ExitMessage (0x10036) L"&Маленький" message [0100] WM_KEYDOWN returned 00000000 trace:message:SPY_EnterMessage (0x10036) L"&Маленький" message [0087] WM_GETDLGCODE sent from self wp=00000061 lp=0034f3f0 trace:message:SPY_ExitMessage (0x10036) L"&Маленький" message [0087] WM_GETDLGCODE returned 00002040 trace:message:SPY_EnterMessage (0x10036) L"&Маленький" message [0087] WM_GETDLGCODE sent from self wp=00000000 lp=00000000 trace:message:SPY_ExitMessage (0x10036) L"&Маленький" message [0087] WM_GETDLGCODE returned 00002040 trace:message:SPY_EnterMessage (0x10036) L"&Маленький" message [000d] WM_GETTEXT sent from self wp=00000080 lp=0034f2a0 trace:message:SPY_EnterMessage (0x10036) DefWindowProc32: WM_GETTEXT [000d] wp=00000080 lp=0034f2a0 trace:message:SPY_ExitMessage (0x10036) DefWindowProc32: WM_GETTEXT [000d] returned 0000000a trace:message:SPY_ExitMessage (0x10036) L"&Маленький" message [000d] WM_GETTEXT returned 0000000a trace:message:SPY_EnterMessage (0x10038) L"&Средний" message [0087] WM_GETDLGCODE sent from self wp=00000000 lp=00000000 trace:message:SPY_ExitMessage (0x10038) L"&Средний" message [0087] WM_GETDLGCODE returned 00002040 trace:message:SPY_EnterMessage (0x10038) L"&Средний" message [000d] WM_GETTEXT sent from self wp=00000080 lp=0034f2a0 trace:message:SPY_EnterMessage (0x10038) DefWindowProc32: WM_GETTEXT [000d] wp=00000080 lp=0034f2a0 trace:message:SPY_ExitMessage (0x10038) DefWindowProc32: WM_GETTEXT [000d] returned 00000008 trace:message:SPY_ExitMessage (0x10038) L"&Средний" message [000d] WM_GETTEXT returned 00000008 trace:message:SPY_EnterMessage (0x1003a) L"&Большой" message [0087] WM_GETDLGCODE sent from self wp=00000000 lp=00000000 trace:message:SPY_ExitMessage (0x1003a) L"&Большой" message [0087] WM_GETDLGCODE returned 00002040 trace:message:SPY_EnterMessage (0x1003a) L"&Большой" message [000d] WM_GETTEXT sent from self wp=00000080 lp=0034f2a0 trace:message:SPY_EnterMessage (0x1003a) DefWindowProc32: WM_GETTEXT [000d] wp=00000080 lp=0034f2a0 trace:message:SPY_ExitMessage (0x1003a) DefWindowProc32: WM_GETTEXT [000d] returned 00000008 trace:message:SPY_ExitMessage (0x1003a) L"&Большой" message [000d] WM_GETTEXT returned 00000008 trace:message:SPY_EnterMessage (0x1003c) L"Управление" message [0087] WM_GETDLGCODE sent from self wp=00000000 lp=00000000 trace:message:SPY_ExitMessage (0x1003c) L"Управление" message [0087] WM_GETDLGCODE returned 00000100 trace:message:SPY_EnterMessage (0x1003c) L"Управление" message [000d] WM_GETTEXT sent from self wp=00000080 lp=0034f2a0 trace:message:SPY_EnterMessage (0x1003c) DefWindowProc32: WM_GETTEXT [000d] wp=00000080 lp=0034f2a0 trace:message:SPY_ExitMessage (0x1003c) DefWindowProc32: WM_GETTEXT [000d] returned 0000000a trace:message:SPY_ExitMessage (0x1003c) L"Управление" message [000d] WM_GETTEXT returned 0000000a trace:message:SPY_EnterMessage (0x1003e) L"Всплывающее мен" message [0087] WM_GETDLGCODE sent from self wp=00000000 lp=00000000 trace:message:SPY_ExitMessage (0x1003e) L"Всплывающее мен" message [0087] WM_GETDLGCODE returned 00000100 trace:message:SPY_EnterMessage (0x1003e) L"Всплывающее мен" message [000d] WM_GETTEXT sent from self wp=00000080 lp=0034f2a0 trace:message:SPY_EnterMessage (0x1003e) DefWindowProc32: WM_GETTEXT [000d] wp=00000080 lp=0034f2a0 trace:message:SPY_ExitMessage (0x1003e) DefWindowProc32: WM_GETTEXT [000d] returned 00000010 trace:message:SPY_ExitMessage (0x1003e) L"Всплывающее мен" message [000d] WM_GETTEXT returned 00000010 trace:message:SPY_EnterMessage (0x10040) L"&Сtrl" message [0087] WM_GETDLGCODE sent from self wp=00000000 lp=00000000 trace:message:SPY_ExitMessage (0x10040) L"&Сtrl" message [0087] WM_GETDLGCODE returned 00002000 trace:message:SPY_EnterMessage (0x10040) L"&Сtrl" message [000d] WM_GETTEXT sent from self wp=00 Проблема кроется в том, что к Tab-у в wineconsole начинает бесконечно приходить сообщение WM_GETDLGCODE. В первом приближении зацикливается в : BOOL WINAPI IsDialogMessageW( HWND hwndDlg, LPMSG msg ) case WM_KEYDOWN: dlgCode = SendMessageW( msg->hwnd, WM_GETDLGCODE, msg->wParam, (LPARAM)msg ); if (dlgCode & DLGC_WANTMESSAGE) break; switch(msg->wParam) { case VK_TAB: Проблема в BOOL WINAPI IsDialogMessageW( HWND hwndDlg, LPMSG msg ) При попадании в case WM_SYSCHAR при вызове DIALOG_IsAccelerator tab-у снова посылается сообщение GETDLGCODE и так до бесконечности. Починил. Если у нас DLGC_WANTCHARS, то прерываем цикл. Т.к. если WM_GETDLGCODE будет послан tab - который находится в модальном диалоге, то будет зацикливание. Для тех, кто не пользуется багзиллой или не умеет пользоваться групповым редактированием при поиске, закрываем задачи, которые они должны были принять. |