Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 5534 - Неверная прорисовка текста с подчеркиванием при переносе строки внутри ячейки   Make a simular bug
Summary: Неверная прорисовка текста с подчеркиванием при переносе строки внутри ячейки
Status: CLOSED FIXED
Alias: None
Product: WINE@Etersoft
Classification: Продукты (Products)
Component: Печать ; Диалог печати (show other bugs)
Version: 1.0.12
Hardware: PC All
: P2 major
Target Milestone: ---
Assignee: Илья Шпигорь
QA Contact: Денис Баранов
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 5395
  Show dependency treegraph
 
In work:
Reported: 2010-04-29 12:41 MSD by Sergey Tuchkin
Modified: 2010-12-03 18:42 MSK (History)
1 user (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments
форма (128.16 KB, application/x-gzip)
2010-11-18 03:58 MSK, Sergey Tuchkin
Details
Вывод на печать в Linux (289.77 KB, application/postscript)
2010-11-18 03:58 MSK, Sergey Tuchkin
Details
Вывод на печать в Windows XP SP3 (398.48 KB, application/postscript)
2010-11-18 03:58 MSK, Sergey Tuchkin
Details
Скриншот графики (154.91 KB, image/jpeg)
2010-11-18 03:58 MSK, Илья Шпигорь
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Tuchkin 2010-04-29 12:41:22 MSD
При использовании текста с подчеркиванием в печатной форме, черта под текстом может оказаться на соседней ячейке. Это происходит в том случае, когда текст не помещается в ячейку и печатается в 2 строки. При этом содержимое соседней ячейки (под текущей) перекрывает текст текущей ячейки (как и должно быть), но черта под текстом текущей ячейки прорисовывается поверх соседней снизу ячейки, как бы перечеркивая её содержимое.
Comment 1 Sergey Tuchkin 2010-04-29 12:41:54 MSD
Created attachment 1674 [details]
форма
Comment 2 Sergey Tuchkin 2010-04-29 12:42:19 MSD
Created attachment 1675 [details]
Вывод на печать в Linux
Comment 3 Sergey Tuchkin 2010-04-29 12:42:40 MSD
Created attachment 1676 [details]
Вывод на печать в Windows XP SP3
Comment 4 Илья Шпигорь 2010-04-29 17:12:10 MSD
Created attachment 1678 [details]
Скриншот графики

Как видно на скриншоте, ошибка воспроизводиться и в X-ах (wine снизу).
Поэтому, скорее всего, проблема не в печати, а в алгоритме вывода текста.
Comment 5 Sergey Tuchkin 2010-04-29 17:33:48 MSD
Согласен, но я как-то не сообразил, в какой раздел лучше положить баг. Решил, что лучше уже по традиции положу в печать, а вы сами разберётесь.
Comment 6 Илья Шпигорь 2010-04-30 12:48:19 MSD
Выложил патч.

Проблема в том, что если в функции ExtTextOutW текст не помещается в переданный прямоугольник и установлен флаг ETO_CLIPPED, то текст обрезается. При этом подчеркивание и зачеркивание текста отрисовывается так, как если бы текст поместился.

Решение заключается в проверке - выходит ли за пределы прямоугольника, переданного в ExtTextOutW, координата y начала линий зачеркивания и подчеркивания. Если да, то эти линии не рисуются.

Проверял на этом же mxl файле, только зачеркнутый текст. Проблема не воспроизводится.

При исправлении ExtTextOutW в gdi32 печать также починилась.
Comment 7 Илья Шпигорь 2010-04-30 12:52:22 MSD
В оригинальном wine 1.1.43 проблема с подчеркиванием решена, но с зачеркиванием текста - нет.
Comment 8 Илья Шпигорь 2010-04-30 14:41:04 MSD
(In reply to comment #7)
> В оригинальном wine 1.1.43 проблема с
> подчеркиванием решена, но с зачеркиванием
> текста - нет.

Ошибся. Проблема воспроизводиться на оригинальном wine.

Comment 9 Денис Баранов 2010-12-03 18:42:51 MSK
Для Кея исправления сделаны. Внедрение прошло успешно.