Bug 2437

Summary: 1Cv77: Неправильная реакция на создание реквизита в конфигураторе
Product: WINE@Etersoft Reporter: Dmitry A. Petuhov <pda>
Component: Окна / фокус / перерисовкаAssignee: Денис Баранов <baraka>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3 CC: baraka, lav, night, shpigor, sonner, vostok
Version: 1.0.9   
Target Milestone: ---   
Hardware: PC   
OS: All   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 945    
Bug Blocks: 2432, 3019    
Attachments: screen

Description Dmitry A. Petuhov 2008-09-15 15:32:58 MSD
Created attachment 723 [details]
screen

ОС: ubuntu 8.04

В конфигураторе делаем новый отчет,
документ, справочник.
На форме располагаем новый элемент.
В свойствах элемента пишем идентификатор.

Если в идентификаторе ошибка, например
встречается пробел, то выдается окошко
"Редактор Диалогов", с надписью
"Неправильный идентификатор!" и кнопочкой
"ОК", после чего невозможно закрыть ни
данное окошко ни свойство рекивзита, ни
конфигуратор. По видимому имеет место быть потеря фокуса.

Смотри скриншот
Comment 1 Dmitry A. Petuhov 2008-09-15 15:35:10 MSD
> Смотри скриншот
> 

Создана по нашей баге: http://interro.dyndns.org/bugs/show_bug.cgi?id=101

Comment 2 Денис Баранов 2008-09-17 17:06:04 MSD
Проблему воспроизвел на Ubuntu 8.04, на Alt не воспоризвелось.
тестировал на сборке от 12сентября.
Comment 3 Илья Шпигорь 2008-10-14 14:00:34 MSD
Получилось воспроизвести в бутылке 1C727.

Проблема в том, что по нажатию ОК, пытается перерисоваться окно редактирования формы. Этому окну передается фокус, а 1С блокирует смену фокуса (до тех пор пока задан неверный идентификатор).

Если в winecfg отключить флаг "разрешить менеджеру окон управлять окнами wine", бага не воспроизводится. 
Comment 4 Илья Шпигорь 2008-10-15 13:18:06 MSD
Выложил патч.
Хак запрещает использовать в 1с7 managed режим для MessageBox'ов.
Comment 5 Анатолий Лютин 2008-10-15 13:29:21 MSD
(In reply to comment #4)
> Выложил патч.
> Хак запрещает использовать в 1с7 managed режим
> для MessageBox'ов.
> 

Это не очень хорошо, т.к. может ломать другие месседжбоксы, которые теперь будут поверх всех окон и не будут появляться в таскбаре. Хотя может быть уже таких проблем нет.
Comment 6 Илья Шпигорь 2008-10-15 13:48:01 MSD
> Это не очень хорошо, т.к. может ломать
> другие месседжбоксы, которые теперь будут
> поверх всех окон и не будут появляться в
> таскбаре. Хотя может быть уже таких проблем
> нет.

Да, не хорошо получилось. В таскбаре MessageBox'ы не появлялись и до хака, но поверх всех окон - совсем не дело. 

Comment 7 Илья Шпигорь 2008-10-15 16:03:24 MSD
Ошибка похожа на #945 (#1050). Проблема все с тем же окном "Свойства...". 
Дело в том, что потеря фокуса окном расценивается как нажатие кнопки "ОК".
Comment 8 Илья Шпигорь 2008-10-16 10:24:32 MSD
Выложил патч - [TRY 2].

Решение заключается в том, чтобы дать managed popup окнам свое X-овое окно. В этом случае они отображаются в таскбаре и корректно передают фокус друг другу. А не через родительское X окно, как было раньше.

Этот патч откатывает хак на багу #945, но в то же время должен ее решить. 
Думаю ее надо переоткрыть и протестирвоать с этим патчем.
Comment 9 Илья Шпигорь 2008-10-16 10:27:17 MSD
Изменения в списке подписки.
Comment 10 Илья Шпигорь 2008-10-21 13:49:42 MSD
Изменение на fixed.
Comment 11 Денис Баранов 2008-10-21 14:53:21 MSD
Проверил на последней сборке от 17окт.
Проблема не воспроизвелась. проверял на Ubuntu 8.04.
Comment 12 Денис Баранов 2008-11-23 17:41:18 MSK
Данная ошибка вновь воспроизвелась, только немного по другому:
Если добавляю пользователя сделать ошибку (пробел в имени), то появляется окно с кнопкой ОК, посде нажатия на ОК это окно закрывается и появляется новое абсолютно такое же.

wine-etersoft-sql-1.0.9-alt0.M41.13
libwine-1.0.9-alt0.M41.35
wine-1.0.9-alt0.M41.35
Comment 13 Илья Шпигорь 2008-11-25 09:24:54 MSK
Бага воспроизводится в KDE на ALT Linux. Под Gnome воспроизвести не удалось. Похоже патч решил проблему для Gnome и сломал под KDE.
Comment 14 Илья Шпигорь 2008-11-25 16:03:20 MSK
Сегодня обновился до текущего eterhack. После этого не смог воспроизвести багу ни на KDE, ни в Gnome. Хотя, на том wine, что в бутылке 1c77-27 бага проявляется. Возможно, один из патчей мог решить эту проблему. Надо подождать следующую сборку.
Comment 15 Денис Баранов 2008-11-28 16:08:00 MSK
На последней сборке проблема не воспроизвелась ни в KDE ни в Gnome.
eter36|eter14
Comment 16 Илья Шпигорь 2008-12-13 12:41:24 MSK
Текущее решение создает багу #3019.
Comment 17 Илья Шпигорь 2008-12-13 12:55:46 MSK
Выложил патч [TRY 4].

Решение заключается в том, что при клике по главному окну 1с, X обработчик не посылает ему WM_MOUSEACTIVATE.
Comment 18 Илья Шпигорь 2008-12-13 14:43:12 MSK
Выложил патч [TRY 5].

Думаю он более корректный, чем [TRY 4]. 

Он добавляет проверку в функции can_activate_window - пытаемся ли мы активировать главное окно 1с7 и если да есть ли foreground popup окна. 1c7 не позволяет переключаться с popup окон, а в данном случае это блокируется на уровне X-ов.
Comment 19 Andrey Vusik 2009-01-30 15:38:02 MSK
Сборка 40/17
Исправлено