changeset 40185:dd40bdb865f1

(display_line): Fix computation of continuation lines width for TABs.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 22 Oct 2001 14:52:47 +0000
parents 40458f0a0bd0
children e6f3d0e02726
files src/xdisp.c
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Mon Oct 22 13:24:08 2001 +0000
+++ b/src/xdisp.c	Mon Oct 22 14:52:47 2001 +0000
@@ -12934,18 +12934,20 @@
 		    {
 		      /* Display element draws past the right edge of
 			 the window.  Restore positions to values
-			 before the element.  The next line starts
-			 with current_x before the glyph that could
-			 not be displayed, so that TAB works right.  */
+			 before the element.  */
 		      row->used[TEXT_AREA] = n_glyphs_before + i;
 		  
 		      /* Display continuation glyphs.  */
 		      if (!FRAME_WINDOW_P (it->f))
 			produce_special_glyphs (it, IT_CONTINUATION);
 		      row->continued_p = 1;
+
+		      /* A TAB takes us to the right edge of the window.  */
+		      if (it->c == '\t')
+			it->continuation_lines_width += it->last_visible_x;
+		      else
+			it->continuation_lines_width += x;
 		      
-		      it->current_x = x;
-		      it->continuation_lines_width += x;
 		      if (nglyphs > 1 && i > 0)
 			{
 			  row->ends_in_middle_of_char_p = 1;