1. Запустить КОМПАС 2. Открыть документ ....wine_c/Program Files/ASCON/KOMPAS-3D V10/Samples/Drawings/12020.SPW 3. Установить выделение на объект КСКВ.12.020СБ в разделе Документация 4. На панели свойств (внизу) перейти на вкладку Документы и нажать кнопку Документы При наведении указателя мыши на путь к документу - всплывает пустой типс ( в типсе д.б. путь к документу). См. скриншот во вложении.
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] скриншот
Закрыта.