Fix bug #953: Paint text decorations for spaces

This commit is contained in:
Vincent van Ravesteijn 2012-05-02 18:02:52 +02:00
parent 53b75399e7
commit c671703f05
2 changed files with 12 additions and 2 deletions

View File

@ -360,6 +360,14 @@ void RowPainter::paintChars(pos_type & vpos, FontInfo const & font,
} }
void RowPainter::paintSeparator(double orig_x, double width,
FontInfo const & font)
{
pi_.pain.textDecoration(font, int(orig_x), yo_, int(width));
x_ += width;
}
void RowPainter::paintForeignMark(double orig_x, Language const * lang, void RowPainter::paintForeignMark(double orig_x, Language const * lang,
int desc) int desc)
{ {
@ -937,9 +945,10 @@ void RowPainter::paintText()
if (par_.isSeparator(pos)) { if (par_.isSeparator(pos)) {
Font const orig_font = text_metrics_.displayFont(pit_, pos); Font const orig_font = text_metrics_.displayFont(pit_, pos);
double const orig_x = x_; double const orig_x = x_;
x_ += width_pos; double separator_width = width_pos;
if (pos >= body_pos) if (pos >= body_pos)
x_ += row_.separator; separator_width += row_.separator;
paintSeparator(orig_x, separator_width, orig_font.fontInfo());
paintForeignMark(orig_x, orig_font.language()); paintForeignMark(orig_x, orig_font.language());
++vpos; ++vpos;

View File

@ -58,6 +58,7 @@ public:
void paintSelection(); void paintSelection();
private: private:
void paintSeparator(double orig_x, double width, FontInfo const & font);
void paintForeignMark(double orig_x, Language const * lang, int desc = 0); void paintForeignMark(double orig_x, Language const * lang, int desc = 0);
void paintMisspelledMark(double orig_x, bool changed); void paintMisspelledMark(double orig_x, bool changed);
void paintHebrewComposeChar(pos_type & vpos, FontInfo const & font); void paintHebrewComposeChar(pos_type & vpos, FontInfo const & font);