Summary: | Не заполняются типсы в контроле Документы спецификации | ||
---|---|---|---|
Product: | [Поддержка проектов] КОМПАС 3D | Reporter: | Виталий Булгаков <bulgakov> |
Component: | Тестирование | Assignee: | Евгений Шиц <sea> |
Status: | CLOSED FIXED | QA Contact: | Олег Шевченко <olezha> |
Severity: | minor | ||
Priority: | P2 | CC: | amorozov, kondratyuk, lav, mais, mx |
Version: | v10 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 753, 1733, 3000, 3106, 6063, 8900 | ||
Attachments: |
Screenshot
Исходники теста Тест на типсы скриншот |
Description
Виталий Булгаков
2008-10-14 15:36:45 MSD
Created attachment 787 [details]
Screenshot
Этот типс не стандартный контрол - tooltips_class32, а имеет класс ZTitleTip. С помощью тестов воспроизвести проблему не удалось. Для решения баги необходимо знать как контрол реализован и как используется. Это необходимо для воспроизведения последовательности сообщений и вызовов WinAPI функций. Вероятнее всего, причина ошибки в том, что последовательность посылки сообщений WM_PAINT в wine отличается от windows, т.е. WM_PAINT приходит после отрисовки текста в типсе и его затирает. Created attachment 1138 [details]
Исходники теста
Это исходники теста, который воспроизводит похожую ситуацию. Как выяснилось, Компас ведет себя иначе. Ошибку в тесте исправить удалось, но при этом в Компасе типс все равно не заполняется.
Created attachment 1153 [details]
Тест на типсы
Выложил группу патчей. Проблема заключается в том, что когда окно типса становится видимым генерируется сразу несколько сообщений WM_PAINT (wineserver'ом и X11). После этого Компас выводит в типс текст, но некоторые сообщения WM_PAINT в этот момент остаются не обработанными. В результате текст перекрывается фоном типса. Решение заключается в том, чтобы запретить wineserver'у генерировать WM_PAINT сообщения, а также убрать из маски обрабатываемых сообщений для типсов ExposureMask, т.е. типсы больше не реагируют на событие X-ов Expose. Вместо этого при отображеннии окна типса перерисовка будет производится на уровне WinAPI. P.S. Эти патчи также должны решить проблему с перекрывающимися типсами в 1с8. Принято WINE@Etersoft CAD eter2.1/eter2 commit d43356f97e94678cb8cbbec0e0d7572c23a1eaec Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Fri Apr 17 14:33:04 2009 +0400 winex11.drv: Remove ExposureMask for windows with WS_EX_TOOLWINDOW style (eterbug #2605) Этот патч вызывает проблему с отрисовкой выпадающего меню выбора пользователя при входе в базу 1С 8.2. Откатил его. Откачен в eterhack (1.5.13), вызывал первоначальную неотрисовку выпадающего меню: commit 8322b010f26c44b1a794dcf92394fa9274905e95 Author: Ilya Shpigor <shpigor@etersoft.ru> Date: Fri Apr 17 10:31:54 2009 +0400 server: Skip redrawing windows on set_window_pos with the SWP_SHOWWINDOW flag (eterbug #2605) diff --git a/server/window.c b/server/window.c index a24b2d6..bdfd60d 100644 --- a/server/window.c +++ b/server/window.c @@ -1661,7 +1661,7 @@ static void set_window_pos( struct window *win, struct window *previous, } } - if (exposed_rgn) + if (exposed_rgn && !(swp_flags & SWP_SHOWWINDOW)) redraw_window( win, exposed_rgn, 1, RDW_INVALIDATE | RDW_ERASE | RDW_FRAME | RDW_ALLCHILDREN ); done: Откладываем задачи, к которым не обращались более 100 дней. Склонировал ВМ на AltWS10, заказал сборку wine@etersoft c sales, установил $ epmqp wine wine-etersoft-9.0.14-eter0.p10.1.x86_64 wine-etersoft-winetricks-20240223-eter0.p10.1.noarch wine-etersoft-grdwine-0.5.7.1-eter1.p10.2.x86_64 wine32-etersoft-grdwine-0.5.7.1-eter1.p10.2.i586 wine-etersoft-gecko-2.47.4-eter0.p10.1.noarch wine-etersoft-network-9.0.4-eter0.p10.1.x86_64 wine-etersoft-programs-9.0.14-eter0.p10.1.x86_64 wine-etersoft-mono-8.1.0-eter0.p10.1.noarch wine32-etersoft-9.0.14-eter0.p10.1.i586 wine-etersoft-full-9.0.14-eter0.p10.1.x86_64 wine-etersoft-common-9.0.14-eter0.p10.1.noarch Перешел в /var/ftp/pvt/Windows/CAD/Kompas/KOMPAS-3D_v22_x64/v22/x64/KOMPAS-3D_v22_x64 и выполнил $ wine_install_kompas Компас установил, ошибок при установке не было. В ~/.wine/drive_c/ProgramData/ASCON создал license.ini с содержанием: [Common] host = license.server В компасе файл -> открыть -> С -> Program Files/ASCON/KOMPAS-3D V10/Samples/Drawings/12020.SPW Выделил обьект КСКВ.12.020СБ В левоми меню параметры -> спецификация -> документация -> выделить путь под разделом "документ". Появляется всплывающая подсказка с полным путем к файлу. Вывод: ошибка не воспроизводится Created attachment 6077 [details]
скриншот
Закрыта. |