changeset 108197:7da109ac81d1

Fix display of R2L continued lines in partial-width windows on a TTY. xdisp.c: (extend_face_to_end_of_line): In almost-filled rows, extend only if the row is R2L and not continued.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 01 May 2010 13:49:09 +0300
parents c52b9f1b020e
children 0501d22b885f
files src/ChangeLog src/xdisp.c
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat May 01 11:50:01 2010 +0300
+++ b/src/ChangeLog	Sat May 01 13:49:09 2010 +0300
@@ -2,6 +2,8 @@
 
 	* xdisp.c (find_row_end): New function, refactored from display_line.
 	(display_line): Use it.
+	(extend_face_to_end_of_line): In almost-filled rows, extend only
+	if the row is R2L and not continued.
 
 2010-04-27  Eli Zaretskii  <eliz@gnu.org>
 
--- a/src/xdisp.c	Sat May 01 11:50:01 2010 +0300
+++ b/src/xdisp.c	Sat May 01 13:49:09 2010 +0300
@@ -16948,8 +16948,13 @@
 
   /* If line is already filled, do nothing.  Non window-system frames
      get a grace of one more ``pixel'' because their characters are
-     1-``pixel'' wide, so they hit the equality too early.  */
-  if (it->current_x >= it->last_visible_x + !FRAME_WINDOW_P (f))
+     1-``pixel'' wide, so they hit the equality too early.  This grace
+     is needed only for R2L rows that are not continued, to produce
+     one extra blank where we could display the cursor.  */
+  if (it->current_x >= it->last_visible_x
+      + (!FRAME_WINDOW_P (f)
+	 && it->glyph_row->reversed_p
+	 && !it->glyph_row->continued_p))
     return;
 
   /* Face extension extends the background and box of IT->face_id