changeset 70204:108b30a5e289

(produce_stretch_glyph): Include face box in stretch glyph size.
author Kim F. Storm <storm@cua.dk>
date Mon, 24 Apr 2006 00:08:07 +0000
parents adfb4457bcec
children ea7d882a4a09
files src/xdisp.c
diffstat 1 files changed, 24 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- 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);
 }