Bug 1837

Summary: 1С8.1 Работа с модальными диалоговыми окнами
Product: WINE@Etersoft Reporter: Alexey Fomenko <alex>
Component: Окна / фокус / перерисовкаAssignee: Svetlana Zhukova <svzhu>
Status: DEFERRED --- QA Contact: Дмитрий Галочкин <dm>
Severity: normal    
Priority: P1 CC: justis, kondratyuk, lav
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: ASP Linux   
Whiteboard:
Заявки RT: Связано с:
Дата напоминания:
Bug Depends on: 8702, 1628    
Bug Blocks: 2500, 2710, 2885, 2897, 3994, 9467    
Attachments: Как это теперь выгядит и работает.

Description Alexey Fomenko 2008-05-21 18:45:48 MSD
При работе с 1С существуют диалоговые окна, блокирующие все остальные окна 1С до собственного закрытия. При этом получается переключиться на другие окна, но без возможности что-либо сделать. Диалоговое окно при этом попадает за приложение 1С на задний план и добраться до него можно только свернув все приложение 1С. Ни в одной панели не отображается что существует диалоговое окно блокировавшее работу 1С до закрытия.
Comment 1 Анатолий Лютин 2008-05-21 18:52:45 MSD
(In reply to comment #0)
> При работе с 1С существуют диалоговые окна,
> блокирующие все остальные окна 1С до
> собственного закрытия. При этом получается
> переключиться на другие окна, но без
> возможности что-либо сделать. Диалоговое
> окно при этом попадает за приложение 1С на
> задний план и добраться до него можно
> только свернув все приложение 1С. Ни в одной
> панели не отображается что существует
> диалоговое окно блокировавшее работу 1С до
> закрытия.
> 

Наверное Вы используете какой-то KDE-подобный менеджер окон. Просто проблема в то, что такое поведение - это фишка unix/вых менеджеров окон. В Винде такое поведение не возможно впринципе. Чтобы в этом убедиться - можно снять управление окнами оконным менеджером и эта бага должна исчезнуть.
Comment 2 Alexey Fomenko 2008-05-22 15:44:00 MSD
(In reply to comment #1)
> (In reply to comment #0)
> > 
> 
> Наверное Вы используете какой-то
> KDE-подобный менеджер окон. Просто проблема
> в то, что такое поведение - это фишка unix/вых
> менеджеров окон. В Винде такое поведение не
> возможно впринципе. Чтобы в этом убедиться
> - можно снять управление окнами оконным
> менеджером и эта бага должна исчезнуть.
> 

Оконный менеджер - GNOME, отключение упомянутой опции эффекта не дало. Модальное окно благополучно скрывается за основным окном блокируя действия.
Comment 3 Анатолий Лютин 2008-05-22 15:49:27 MSD
(In reply to comment #2)
> Оконный менеджер - GNOME, отключение
> упомянутой опции эффекта не дало.
> Модальное окно благополучно скрывается за
> основным окном блокируя действия.
> 
Ух ты.. А декорирование окон тоже отключали или ещё нет в этом билде этой опции?
В общем, прошу скриншоты с примерами таких окон, в порядке живой очереди исправлю :)
Comment 4 Alexey Fomenko 2008-05-23 13:49:26 MSD
(In reply to comment #3)
> Ух ты.. А декорирование окон тоже отключали
> или ещё нет в этом билде этой опции?
> В общем, прошу скриншоты с примерами таких
> окон, в порядке живой очереди исправлю :)
> 
Декорирования вроде нету. Я не нашел. Ссылки на скрины:
http://pylesos.asplinux.com.ua:/~alex/screens/Screenshot-1.png
http://pylesos.asplinux.com.ua:/~alex/screens/Screenshot.png
http://pylesos.asplinux.com.ua:/~alex/screens/Screenshot3.png
Comment 5 Анатолий Лютин 2008-05-23 14:24:42 MSD
Created attachment 456 [details]
Как это теперь выгядит и работает.
Comment 6 Анатолий Лютин 2008-05-23 14:25:06 MSD
(In reply to comment #4)
> Декорирования вроде нету. Я не нашел.
Это надо в winecfg делать. Там недавно новый checkbox появился (а я не помню, новые ли исходники в вашем билде)
> Ссылки на скрины:
> http://pylesos.asplinux.com.ua:/~alex/screens/Screenshot-1.png
> http://pylesos.asplinux.com.ua:/~alex/screens/Screenshot.png
> http://pylesos.asplinux.com.ua:/~alex/screens/Screenshot3.png
> 
Скриншот как это теперь выглядит, я приложил. Считаю, что бага исправлена.

Comment 7 Vitaly Lipatov 2008-05-23 15:47:02 MSD
Я так и не понял, что-то нужно делать, или в новых версиях само всё хорошо стало?
Comment 8 Анатолий Лютин 2008-05-23 15:48:34 MSD
(In reply to comment #7)
> Я так и не понял, что-то нужно делать, или в
> новых версиях само всё хорошо стало?
> 

Пересобрать wine с моими вчерашними исправлениями.
Comment 9 Vitaly Lipatov 2008-05-23 15:57:07 MSD
Сборка для ASP Linux 12 готова, для остальных будет завтра.
P.S.
Можно указывать commit id, начиная с которого всё хорошо.
Comment 10 Alexey Fomenko 2008-05-26 11:18:28 MSD
(In reply to comment #9)
> Сборка для ASP Linux 12 готова, для остальных
> будет завтра.
> P.S.
> Можно указывать commit id, начиная с которого
> всё хорошо.
> 
Отпишитесь, пожалуйста, когда можно будет скачивать сборку для CentOS5. Скачивать новые сборки нужно по доступу в личный профиль, путем выбора дистрибутива? Я скачивал несколько сборок, они вроде идентичные ранним.

Comment 11 Alexey Fomenko 2008-05-28 18:39:30 MSD
(In reply to comment #9)
> Сборка для ASP Linux 12 готова, для остальных
> будет завтра.
> P.S.
> Можно указывать commit id, начиная с которого
> всё хорошо.
> 
В свежесобранных пакетах все еще присутствует рассматриваемая ошибка. Укажите, пожалуйста, как отличить новую версию исходников от старой, потому как в скачиваемых пакетах сетевой версии по заголовку пакета его отличает от предыдущих только время сборки. Даже развер остается старым.
Comment 12 Vitaly Lipatov 2008-05-29 20:25:43 MSD
Вообще пакеты присылаются по ссылке "Бета-версия" на странице продукта,
в данном случае нужно обновить открытую часть. Но можно и напрямую скачать пакеты:
ftp://updates.etersoft.ru/pub/Etersoft/WINE%40Etersoft/1.0.9/WINE/CentOS/5
eter7 - это и есть последняя новая сборка. И дата новая у пакетов.
libwine-1.0.9-eter7centos.i586.rpm
wine-1.0.9-eter7centos.i586.rpm
Comment 13 Alexey Fomenko 2008-06-02 17:52:25 MSD
(In reply to comment #12)
> Вообще пакеты присылаются по ссылке
> "Бета-версия" на странице продукта,
> в данном случае нужно обновить открытую
> часть. Но можно и напрямую скачать пакеты:
> ftp://updates.etersoft.ru/pub/Etersoft/WINE%40Etersoft/1.0.9/WINE/CentOS/5
> eter7 - это и есть последняя новая сборка. И
> дата новая у пакетов.
> libwine-1.0.9-eter7centos.i586.rpm
> wine-1.0.9-eter7centos.i586.rpm
> 
Именно эти пакеты и свежие шрифты были установлены. Окна все равно скрываются, блокируя работу. 
Comment 14 Vitaly Lipatov 2008-06-04 04:28:18 MSD
Денис, попробуйте воспроизвести пожалуйста.
Дистрибутив CentOS 5.0
Comment 15 Andrey Vusik 2008-07-12 13:50:50 MSD
Под рукой был НауЛинукс. Поэтому проверил на нём со зборкой eter16 под CentOS 5.2
Получил следующие результаты. Да, действительно, такое окно (которое должно блокировать все остальные) уже присутствует на панеле задач. Но нажав на главное окно 1с - окно, которое должно блокировать, пропадает (со звуком из динамика на материнской плате). По нажатии на него на панеле задач - оно не появляется (как и не появляется главное окно 1с). Вернуть его можно, либо переключаясь Alt-Tab, либо развернув и свернув какое-либо другое окно (например, консоль).  В Windows такое окно всегда остаётся на переднем плане. Поэтому бага осталась.
Comment 16 Andrey Vusik 2008-07-12 13:52:33 MSD
Под рукой был НауЛинукс. Поэтому проверил на нём со зборкой eter16 под CentOS 5.2
Получил следующие результаты. Да, действительно, такое окно (которое должно блокировать все остальные) уже присутствует на панеле задач. Но нажав на главное окно 1с - окно, которое должно блокировать, пропадает (со звуком из динамика на материнской плате). По нажатии на него на панеле задач - оно не появляется (как и не появляется главное окно 1с). Вернуть его можно, либо переключаясь Alt-Tab, либо развернув и свернув какое-либо другое окно (например, консоль).  В Windows такое окно всегда остаётся на переднем плане. Поэтому - бага присутствует.
Comment 17 Илья Шпигорь 2008-10-21 13:22:05 MSD
Сделал и выложил патч.

Он дополняет существующие хаки на 1с. Заставляет отрисовываться popup окна поверх всех остальных, при этом они остаются managed.

Но существует проблема в Gnome, когда popup окно вызывает MessageBox. Эти MessageBox'ы иногда не отображаются на переднем плане, а оказываются под popup окном. В KDE все работает нормально.
Думаю, на эту проблему лучше завести отдельную багу.
Comment 18 Илья Шпигорь 2008-10-21 13:52:30 MSD
Изменение на fixed.
Comment 19 Константин Кондратюк 2008-11-12 11:08:18 MSK
Коммит 6b9b9e5583a5ae905c8794e9ff53f829ebbbe739 исключён из сборки eter34.1 как ломающий выпадающий список пользователей в 1с8.
Comment 20 Константин Кондратюк 2008-11-14 14:58:04 MSK
Всё же не исключён, а стоило бы :)
Слишком много ломает, особенно для КДЕ. Нужно переделывать.
Comment 21 Илья Шпигорь 2008-11-17 12:09:38 MSK
Задача заключается в том, чтобы отображать окно, которому передается фокус в X11DRV_SetFocus, поверх остальных окон.


Здесь описывается бага Gnome, которая может относиться к данной проблеме:
http://bugzilla.gnome.org/show_bug.cgi?id=445447#c6

Похожая ситуация с popup окном, оказавшимся перекрытым другим:
http://bugzilla.gnome.org/show_bug.cgi?id=502930

Здесь говориться, что все манипуляции со стеком окон со стороны приложения в некоторых случаях игнорируются:
http://blogs.gnome.org/metacity/2007/12/24/stacking/
Comment 22 Илья Шпигорь 2008-11-19 10:57:19 MSK
Выложил патч.

Решение заключается в том, чтобы выставлять для popup окон стиль WS_EX_TOPMOST, при этом отслеживая, чтобы окно с таким стилем было только одно. Также для предотвращения отрисовки popup окон поверх остальных X-овых, при FocusOut WS_EX_TOPMOST сбрасывается.

Надо хорошенько протестировать в KDE и Gnome.
Comment 23 Andrey Vusik 2008-11-25 21:29:04 MSK
(In reply to comment #22)
> Выложил патч.
> 
> Решение заключается в том, чтобы
> выставлять для popup окон стиль WS_EX_TOPMOST, при
> этом отслеживая, чтобы окно с таким стилем
> было только одно. Также для предотвращения
> отрисовки popup окон поверх остальных X-овых,
> при FocusOut WS_EX_TOPMOST сбрасывается.
> 
> Надо хорошенько протестировать в KDE и Gnome.
> 

В GNOME проблем не заметил.
Сборка от 25 числа.
Comment 24 Денис Баранов 2008-12-11 17:32:27 MSK
/*Протестировано*\
Comment 25 Константин Кондратюк 2013-08-22 18:34:10 MSK
(В ответ на comment #19)
> Коммит 6b9b9e5583a5ae905c8794e9ff53f829ebbbe739 исключён из сборки eter34.1 как
> ломающий выпадающий список пользователей в 1с8.

Теперь ломает ещё и в GNOME, и не только выпадающие списки. Поэтому хак откачен. Скорее всего он уже не нужен через 5 лет, но это предположение нуждается в проверке.
Comment 26 Svetlana Zhukova 2013-09-03 14:48:49 MSK
Нечто похожее уже встречалось тут(1c8.2): , 8702,7652,5671
на eter-2.1 присутствует
* Чт авг 22 2013 Etersoft Builder <builder@etersoft.ru> 2.1.3-alt5
- user32: Revert hack for eterbug #1837 (fix eterbug #9467)

бутылка swine 2.1 1c81/1c81 база demo trade (управление торговлей,аналогичная на скрине)
документы-продажи-реализация товаров и услуг - выделяем любую строку,нажимаем значок <--> на верхней панели (настройка периода). Далее кликаю на материнское окно 1с...окошко с периодом утекает на задний план...На панели окон таблички с периодом нет. Если кликнуть на окно 1с-ки на панели задач рабочего стола,то окно периода возникает на переднем плане,при этом материнское окно 1с исчезает (сворачивается).
После закрытия окна с периодом кликаем еще раз по 1с на панели задач,и оно открывается.

То есть проблема воспроизводится.
Comment 27 Svetlana Zhukova 2013-09-03 15:07:34 MSK
Абсолютн то же самое на 1с82(бутылка 1c82/1c82,база и воспроизведения такие же).

По мотивам 8702:
Воспроизводится также на базе /var/ftp/pvt/Windows/1C/1Cv82_configs/Accounting
операции-справочники-контрагенты-добавить нового(зеленый кружок с
плюсиком)-адрес- нажимаем кнопку выбора - появляется то самое "гуляющее"
окошко.

Также воспроизводится.
Comment 29 Vitaly Lipatov 2014-09-11 18:39:55 MSK
Откладываем задачи, к которым не обращались более 100 дней.