Bug 3816

Summary: Сворачивание окна при смене стола в КДЕ
Product: WINE@Etersoft Reporter: Александр Пликус <pav>
Component: Окна / фокус / перерисовкаAssignee: Илья Шпигорь <shpigor>
Status: CLOSED FIXED QA Contact:
Severity: normal    
Priority: P4 CC: baraka
Version: 1.0.10   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on:    
Bug Blocks: 3962    

Description Александр Пликус 2009-04-14 16:13:39 MSD
В любом приложении при переключении окно сворачивается и затем разворачивается при переключении с другой рабочи
Comment 1 Александр Пликус 2009-04-20 20:48:33 MSD
Мне кажется что это проблема
 http://unixforum.org/index.php?s=&showtopic=90639&view=findpost&p=843222

имеет одну причину...
Comment 2 Илья Шпигорь 2009-04-23 10:41:44 MSD
Выложил патч.

Бага возникла из-за группы патчей на #3768. Там по FocusOut происходит изменение атома NET_WM_STATE окна, чтобы снять topmost. Когда FocusOut связан с переходом на другой рабочий стол, KDE при изменении этого атома решает еще восстановить окно из максимизированного состояния.В Gnome ошибка не проявляется.

Решение заключается в добавлении проверки поля detail структуры XFocusChangeEvent. Как выяснилось это поле равно NotifyNonlinear если потеря фокуса связана с переходом на другое X-овое окно. В случае, если FocusOut связан с переходом на другой рабочий стол это поле равно NotifyAncestor.

О том, какое значение вообще может принимать это поле при событиях FocusOut, FocusIn написано здесь:
http://www.cptec.inpe.br/sx4/sx4man2/g1ae02e/chap10.html