(x_draw_glyph_string): Be sure to draw underline within the current
authorKenichi Handa <handa@m17n.org>
Fri, 23 May 2008 06:11:53 +0000 (06:11 +0000)
committerKenichi Handa <handa@m17n.org>
Fri, 23 May 2008 06:11:53 +0000 (06:11 +0000)
line area.

src/w32term.c

index eb45d30..5f5a3f9 100644 (file)
@@ -2909,6 +2909,12 @@ x_draw_glyph_string (s)
                   position = (s->font->descent + 1) / 2;
                 }
             }
+         /* Check the sanity of thickness and position.  We should
+            avoid drawing underline out of the current line area.  */
+         if (s->y + s->height <= s->ybase + position)
+           position = s->y + s->height - 1;
+         if (s->y + s->height < s->ybase + position + thickness)
+           thickness = (s->y + s->height) - (s->ybase + position);
          s->underline_thickness = thickness;
          s->underline_position =position;
           y = s->ybase + position;