| Summary: | VVS Офис: Отображение создаваемых окон за родительски окном | ||
|---|---|---|---|
| Product: | WINE@Etersoft | Reporter: | Илья Шпигорь <shpigor> |
| Component: | Окна / фокус / перерисовка | Assignee: | Илья Шпигорь <shpigor> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | baraka, lav |
| Version: | 1.0.10 | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | All | ||
| Whiteboard: | |||
| Заявки RT: | 10049 | Связано с: | |
| Дата напоминания: | |||
| Bug Depends on: | 3024, 7469 | ||
| Bug Blocks: | 3962 | ||
Выложил патч. Проблема вызвана патчем на багу #3024. Дело в том, что VVS Офис передает фокус окнам до того, как они станут видимы. По этой причине структура data, описывающее их X-овое окно, еще не была создана. Из-за этого X11DRV_SetFocus не отрабатывает и предыдущее topmost окно не сбрасывается. Решение заключается в том, чтобы создавать структуру data для окон, которым передается фокус в X11DRV_SetFocus. Тестировать можно в бутылке vvs/vvs_demo. Принято. eter21 |
1) основная пока проблема - это отображение окон на заднем плане, за родительским окном. В нашей программе создаются модальные диалоговые окна с изменяемым размером. Они выводятся позади их предка и работать практически невозможно. Это относится к дилоговым окнам с изменяемым размером из ресурсов, вызываемых через функцию WinApi , например: FARPROC lpProc; lpProc=MakeProcInstance((FARPROC) dialTwrList, hInstLib ); if(lpProc!=NULL){ ret=DialogBox(hInstLib,"vbrTwr", hWnd,lpProc); FreeProcInstance(lpProc); }else MessageBox(0,"Ошибка","",MB_OK); На всякий случай стиль окна: STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MAXIMIZEBOX Также выводятся сзади окна-родителя сообщения без Handle:, например MessageBox(0,"Тест","",MB_OK);