Created attachment 723 [details] screen ОС: ubuntu 8.04 В конфигураторе делаем новый отчет, документ, справочник. На форме располагаем новый элемент. В свойствах элемента пишем идентификатор. Если в идентификаторе ошибка, например встречается пробел, то выдается окошко "Редактор Диалогов", с надписью "Неправильный идентификатор!" и кнопочкой "ОК", после чего невозможно закрыть ни данное окошко ни свойство рекивзита, ни конфигуратор. По видимому имеет место быть потеря фокуса. Смотри скриншот
> Смотри скриншот > Создана по нашей баге: http://interro.dyndns.org/bugs/show_bug.cgi?id=101
Проблему воспроизвел на Ubuntu 8.04, на Alt не воспоризвелось. тестировал на сборке от 12сентября.
Получилось воспроизвести в бутылке 1C727. Проблема в том, что по нажатию ОК, пытается перерисоваться окно редактирования формы. Этому окну передается фокус, а 1С блокирует смену фокуса (до тех пор пока задан неверный идентификатор). Если в winecfg отключить флаг "разрешить менеджеру окон управлять окнами wine", бага не воспроизводится.
Выложил патч. Хак запрещает использовать в 1с7 managed режим для MessageBox'ов.
(In reply to comment #4) > Выложил патч. > Хак запрещает использовать в 1с7 managed режим > для MessageBox'ов. > Это не очень хорошо, т.к. может ломать другие месседжбоксы, которые теперь будут поверх всех окон и не будут появляться в таскбаре. Хотя может быть уже таких проблем нет.
> Это не очень хорошо, т.к. может ломать > другие месседжбоксы, которые теперь будут > поверх всех окон и не будут появляться в > таскбаре. Хотя может быть уже таких проблем > нет. Да, не хорошо получилось. В таскбаре MessageBox'ы не появлялись и до хака, но поверх всех окон - совсем не дело.
Ошибка похожа на #945 (#1050). Проблема все с тем же окном "Свойства...". Дело в том, что потеря фокуса окном расценивается как нажатие кнопки "ОК".
Выложил патч - [TRY 2]. Решение заключается в том, чтобы дать managed popup окнам свое X-овое окно. В этом случае они отображаются в таскбаре и корректно передают фокус друг другу. А не через родительское X окно, как было раньше. Этот патч откатывает хак на багу #945, но в то же время должен ее решить. Думаю ее надо переоткрыть и протестирвоать с этим патчем.
Изменения в списке подписки.
Изменение на fixed.
Проверил на последней сборке от 17окт. Проблема не воспроизвелась. проверял на Ubuntu 8.04.
Данная ошибка вновь воспроизвелась, только немного по другому: Если добавляю пользователя сделать ошибку (пробел в имени), то появляется окно с кнопкой ОК, посде нажатия на ОК это окно закрывается и появляется новое абсолютно такое же. wine-etersoft-sql-1.0.9-alt0.M41.13 libwine-1.0.9-alt0.M41.35 wine-1.0.9-alt0.M41.35
Бага воспроизводится в KDE на ALT Linux. Под Gnome воспроизвести не удалось. Похоже патч решил проблему для Gnome и сломал под KDE.
Сегодня обновился до текущего eterhack. После этого не смог воспроизвести багу ни на KDE, ни в Gnome. Хотя, на том wine, что в бутылке 1c77-27 бага проявляется. Возможно, один из патчей мог решить эту проблему. Надо подождать следующую сборку.
На последней сборке проблема не воспроизвелась ни в KDE ни в Gnome. eter36|eter14
Текущее решение создает багу #3019.
Выложил патч [TRY 4]. Решение заключается в том, что при клике по главному окну 1с, X обработчик не посылает ему WM_MOUSEACTIVATE.
Выложил патч [TRY 5]. Думаю он более корректный, чем [TRY 4]. Он добавляет проверку в функции can_activate_window - пытаемся ли мы активировать главное окно 1с7 и если да есть ли foreground popup окна. 1c7 не позволяет переключаться с popup окон, а в данном случае это блокируется на уровне X-ов.
Сборка 40/17 Исправлено