Summary: | Неверная прорисовка текста с подчеркиванием при переносе строки внутри ячейки | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Sergey Tuchkin <tuchkin> |
Component: | Печать ; Диалог печати | Assignee: | Илья Шпигорь <shpigor> |
Status: | CLOSED FIXED | QA Contact: | Денис Баранов <baraka> |
Severity: | major | ||
Priority: | P2 | CC: | lav |
Version: | 1.0.12 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 5395 | ||
Attachments: |
форма
Вывод на печать в Linux Вывод на печать в Windows XP SP3 Скриншот графики |
Description
Sergey Tuchkin
2010-04-29 12:41:22 MSD
Created attachment 1674 [details]
форма
Created attachment 1675 [details]
Вывод на печать в Linux
Created attachment 1676 [details]
Вывод на печать в Windows XP SP3
Created attachment 1678 [details]
Скриншот графики
Как видно на скриншоте, ошибка воспроизводиться и в X-ах (wine снизу).
Поэтому, скорее всего, проблема не в печати, а в алгоритме вывода текста.
Согласен, но я как-то не сообразил, в какой раздел лучше положить баг. Решил, что лучше уже по традиции положу в печать, а вы сами разберётесь. Выложил патч. Проблема в том, что если в функции ExtTextOutW текст не помещается в переданный прямоугольник и установлен флаг ETO_CLIPPED, то текст обрезается. При этом подчеркивание и зачеркивание текста отрисовывается так, как если бы текст поместился. Решение заключается в проверке - выходит ли за пределы прямоугольника, переданного в ExtTextOutW, координата y начала линий зачеркивания и подчеркивания. Если да, то эти линии не рисуются. Проверял на этом же mxl файле, только зачеркнутый текст. Проблема не воспроизводится. При исправлении ExtTextOutW в gdi32 печать также починилась. В оригинальном wine 1.1.43 проблема с подчеркиванием решена, но с зачеркиванием текста - нет. (In reply to comment #7) > В оригинальном wine 1.1.43 проблема с > подчеркиванием решена, но с зачеркиванием > текста - нет. Ошибся. Проблема воспроизводиться на оригинальном wine. Для Кея исправления сделаны. Внедрение прошло успешно. |