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: | Связано с: | 8702,7652,5671 | |
Дата напоминания: | |||
Bug Depends on: | 8702, 1628 | ||
Bug Blocks: | 2500, 2710, 2885, 2897, 3994, 9467 | ||
Attachments: | Как это теперь выгядит и работает. |
Description
Alexey Fomenko
2008-05-21 18:45:48 MSD
(In reply to comment #0) > При работе с 1С существуют диалоговые окна, > блокирующие все остальные окна 1С до > собственного закрытия. При этом получается > переключиться на другие окна, но без > возможности что-либо сделать. Диалоговое > окно при этом попадает за приложение 1С на > задний план и добраться до него можно > только свернув все приложение 1С. Ни в одной > панели не отображается что существует > диалоговое окно блокировавшее работу 1С до > закрытия. > Наверное Вы используете какой-то KDE-подобный менеджер окон. Просто проблема в то, что такое поведение - это фишка unix/вых менеджеров окон. В Винде такое поведение не возможно впринципе. Чтобы в этом убедиться - можно снять управление окнами оконным менеджером и эта бага должна исчезнуть. (In reply to comment #1) > (In reply to comment #0) > > > > Наверное Вы используете какой-то > KDE-подобный менеджер окон. Просто проблема > в то, что такое поведение - это фишка unix/вых > менеджеров окон. В Винде такое поведение не > возможно впринципе. Чтобы в этом убедиться > - можно снять управление окнами оконным > менеджером и эта бага должна исчезнуть. > Оконный менеджер - GNOME, отключение упомянутой опции эффекта не дало. Модальное окно благополучно скрывается за основным окном блокируя действия. (In reply to comment #2) > Оконный менеджер - GNOME, отключение > упомянутой опции эффекта не дало. > Модальное окно благополучно скрывается за > основным окном блокируя действия. > Ух ты.. А декорирование окон тоже отключали или ещё нет в этом билде этой опции? В общем, прошу скриншоты с примерами таких окон, в порядке живой очереди исправлю :) (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 Created attachment 456 [details]
Как это теперь выгядит и работает.
(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 > Скриншот как это теперь выглядит, я приложил. Считаю, что бага исправлена. Я так и не понял, что-то нужно делать, или в новых версиях само всё хорошо стало? (In reply to comment #7) > Я так и не понял, что-то нужно делать, или в > новых версиях само всё хорошо стало? > Пересобрать wine с моими вчерашними исправлениями. Сборка для ASP Linux 12 готова, для остальных будет завтра. P.S. Можно указывать commit id, начиная с которого всё хорошо. (In reply to comment #9) > Сборка для ASP Linux 12 готова, для остальных > будет завтра. > P.S. > Можно указывать commit id, начиная с которого > всё хорошо. > Отпишитесь, пожалуйста, когда можно будет скачивать сборку для CentOS5. Скачивать новые сборки нужно по доступу в личный профиль, путем выбора дистрибутива? Я скачивал несколько сборок, они вроде идентичные ранним. (In reply to comment #9) > Сборка для ASP Linux 12 готова, для остальных > будет завтра. > P.S. > Можно указывать commit id, начиная с которого > всё хорошо. > В свежесобранных пакетах все еще присутствует рассматриваемая ошибка. Укажите, пожалуйста, как отличить новую версию исходников от старой, потому как в скачиваемых пакетах сетевой версии по заголовку пакета его отличает от предыдущих только время сборки. Даже развер остается старым. Вообще пакеты присылаются по ссылке "Бета-версия" на странице продукта, в данном случае нужно обновить открытую часть. Но можно и напрямую скачать пакеты: 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 (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 > Именно эти пакеты и свежие шрифты были установлены. Окна все равно скрываются, блокируя работу. Денис, попробуйте воспроизвести пожалуйста. Дистрибутив CentOS 5.0 Под рукой был НауЛинукс. Поэтому проверил на нём со зборкой eter16 под CentOS 5.2 Получил следующие результаты. Да, действительно, такое окно (которое должно блокировать все остальные) уже присутствует на панеле задач. Но нажав на главное окно 1с - окно, которое должно блокировать, пропадает (со звуком из динамика на материнской плате). По нажатии на него на панеле задач - оно не появляется (как и не появляется главное окно 1с). Вернуть его можно, либо переключаясь Alt-Tab, либо развернув и свернув какое-либо другое окно (например, консоль). В Windows такое окно всегда остаётся на переднем плане. Поэтому бага осталась. Под рукой был НауЛинукс. Поэтому проверил на нём со зборкой eter16 под CentOS 5.2 Получил следующие результаты. Да, действительно, такое окно (которое должно блокировать все остальные) уже присутствует на панеле задач. Но нажав на главное окно 1с - окно, которое должно блокировать, пропадает (со звуком из динамика на материнской плате). По нажатии на него на панеле задач - оно не появляется (как и не появляется главное окно 1с). Вернуть его можно, либо переключаясь Alt-Tab, либо развернув и свернув какое-либо другое окно (например, консоль). В Windows такое окно всегда остаётся на переднем плане. Поэтому - бага присутствует. Сделал и выложил патч. Он дополняет существующие хаки на 1с. Заставляет отрисовываться popup окна поверх всех остальных, при этом они остаются managed. Но существует проблема в Gnome, когда popup окно вызывает MessageBox. Эти MessageBox'ы иногда не отображаются на переднем плане, а оказываются под popup окном. В KDE все работает нормально. Думаю, на эту проблему лучше завести отдельную багу. Изменение на fixed. Коммит 6b9b9e5583a5ae905c8794e9ff53f829ebbbe739 исключён из сборки eter34.1 как ломающий выпадающий список пользователей в 1с8. Всё же не исключён, а стоило бы :) Слишком много ломает, особенно для КДЕ. Нужно переделывать. Задача заключается в том, чтобы отображать окно, которому передается фокус в 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/ Выложил патч. Решение заключается в том, чтобы выставлять для popup окон стиль WS_EX_TOPMOST, при этом отслеживая, чтобы окно с таким стилем было только одно. Также для предотвращения отрисовки popup окон поверх остальных X-овых, при FocusOut WS_EX_TOPMOST сбрасывается. Надо хорошенько протестировать в KDE и Gnome. (In reply to comment #22) > Выложил патч. > > Решение заключается в том, чтобы > выставлять для popup окон стиль WS_EX_TOPMOST, при > этом отслеживая, чтобы окно с таким стилем > было только одно. Также для предотвращения > отрисовки popup окон поверх остальных X-овых, > при FocusOut WS_EX_TOPMOST сбрасывается. > > Надо хорошенько протестировать в KDE и Gnome. > В GNOME проблем не заметил. Сборка от 25 числа. /*Протестировано*\ (В ответ на comment #19) > Коммит 6b9b9e5583a5ae905c8794e9ff53f829ebbbe739 исключён из сборки eter34.1 как > ломающий выпадающий список пользователей в 1с8. Теперь ломает ещё и в GNOME, и не только выпадающие списки. Поэтому хак откачен. Скорее всего он уже не нужен через 5 лет, но это предположение нуждается в проверке. Нечто похожее уже встречалось тут(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с на панели задач,и оно открывается. То есть проблема воспроизводится. Абсолютн то же самое на 1с82(бутылка 1c82/1c82,база и воспроизведения такие же). По мотивам 8702: Воспроизводится также на базе /var/ftp/pvt/Windows/1C/1Cv82_configs/Accounting операции-справочники-контрагенты-добавить нового(зеленый кружок с плюсиком)-адрес- нажимаем кнопку выбора - появляется то самое "гуляющее" окошко. Также воспроизводится. Откладываем задачи, к которым не обращались более 100 дней. |