Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 3910 - VVS Офис: Отображение создаваемых окон за родительски окном   Make a simular bug
Summary: VVS Офис: Отображение создаваемых окон за родительски окном
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Окна / фокус / перерисовка (show other bugs)
Version: 1.0.10
Hardware: PC All
: P3 normal
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on: 3024 7469
Blocks: 3962
  Show dependency treegraph
 
In work:
Reported: 2009-05-05 10:03 MSD by Илья Шпигорь
Modified: 2011-07-21 16:04 MSK (History)
2 users (show)

See Also:
Заявки RT: 10049
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Илья Шпигорь 2009-05-05 10:03:27 MSD
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);
Comment 1 Илья Шпигорь 2009-05-06 11:26:56 MSD
Выложил патч.

Проблема вызвана патчем на багу #3024. Дело в том, что VVS Офис передает фокус окнам до того, как они станут видимы. По этой причине структура data, описывающее их X-овое окно, еще не была создана. Из-за этого X11DRV_SetFocus не отрабатывает и предыдущее topmost окно не сбрасывается.

Решение заключается в том, чтобы создавать структуру data для окон, которым передается фокус в X11DRV_SetFocus.

Тестировать можно в бутылке vvs/vvs_demo.
Comment 2 Денис Баранов 2009-05-10 15:03:08 MSD
Принято.
eter21