Bug 3645

Summary: Главное окно 1С8 остается поверх других окон в Gnome
Product: WINE@Etersoft Reporter: Илья Шпигорь <shpigor>
Component: Окна / фокус / перерисовкаAssignee: Илья Шпигорь <shpigor>
Status: CLOSED FIXED QA Contact:
Severity: minor    
Priority: P4 CC: baraka, lav
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 3024, 7469    
Bug Blocks: 1217    

Description Илья Шпигорь 2009-03-12 15:36:14 MSK
Воспроизведение:
1) Максимизировать главное окно 1с
2) Переключиться на другое X-овое окно (например консоль)
3) Переключиться на окно 1с
4) Свернуть главное окно 1с
5) Восстановить его
6) Восстановить в обычное не максимизированное состояние
7) Переключиться на другое окно X-ов

В результате X-овый фокус передастся, но окно 1с останется на переднем плане.

Возможно, существуют более простые варианты воспроизведения. Главное - понятно, что проблема есть и, скорее всего, связана с патчами на #3024.
Comment 1 Илья Шпигорь 2009-03-19 10:41:42 MSK
Выложил патч.

Проблема заключалась в том, что после снятия атома NET_WM_STATE_ABOVE в X11DRV_FocusOut происходил вызов X11DRV_ConfigureNotify, в результате чего обновлялся размер X-ового окна. Gnome, похоже, реагировал на изменение окна тем, что оставлял его на вершине стэка окон. В результате окно оставалось на переднем плане.

Патч добавляет вызов X11DRV_DropWindow (т.е. сброс атома NET_WM_STATE_ABOVE) в WinAPI'шную функцию ShowWindow, если окно восстанавливалось или максимизировалось. В результате чего этот атом сбрасывается после всех изменений X-ового окна.

Тестировать надо на 1с8.