# HG changeset patch # User Kim F. Storm # Date 1145837287 0 # Node ID 108b30a5e289f5f1e9ce0c4dd27dbace4dbdfd57 # Parent adfb4457bcec2df88dd1ce7d8b19ba40973d060c (produce_stretch_glyph): Include face box in stretch glyph size. diff -r adfb4457bcec -r 108b30a5e289 src/xdisp.c --- a/src/xdisp.c Mon Apr 24 00:07:47 2006 +0000 +++ b/src/xdisp.c Mon Apr 24 00:08:07 2006 +0000 @@ -19865,12 +19865,30 @@ && it->current_x + width > it->last_visible_x) width = it->last_visible_x - it->current_x - 1; - if (width > 0 && height > 0 && it->glyph_row) - { - Lisp_Object object = it->stack[it->sp - 1].string; - if (!STRINGP (object)) - object = it->w->buffer; - append_stretch_glyph (it, object, width, height, ascent); + if (width > 0 && height > 0) + { + + if (face->box != FACE_NO_BOX && face->box_line_width != 0) + { + if (face->box_line_width > 0) + { + ascent += face->box_line_width; + height += face->box_line_width * 2; + } + + if (it->start_of_box_run_p) + width += abs (face->box_line_width); + if (it->end_of_box_run_p) + width += abs (face->box_line_width); + } + + if (it->glyph_row) + { + Lisp_Object object = it->stack[it->sp - 1].string; + if (!STRINGP (object)) + object = it->w->buffer; + append_stretch_glyph (it, object, width, height, ascent); + } } it->pixel_width = width; @@ -19878,20 +19896,6 @@ it->descent = it->phys_descent = height - it->ascent; it->nglyphs = width > 0 && height > 0 ? 1 : 0; - if (width > 0 && height > 0 && face->box != FACE_NO_BOX) - { - if (face->box_line_width > 0) - { - it->ascent += face->box_line_width; - it->descent += face->box_line_width; - } - - if (it->start_of_box_run_p) - it->pixel_width += abs (face->box_line_width); - if (it->end_of_box_run_p) - it->pixel_width += abs (face->box_line_width); - } - take_vertical_position_into_account (it); }