changeset 107995:1afd4d56683f

Fix cursor positioning at end of R2L line on TTY frames. xdisp.c (extend_face_to_end_of_line): Fix off-by-one error on TTY frames in testing whether a line needs face extension.
author Eli Zaretskii <eliz@gnu.org>
date Sat, 17 Apr 2010 19:02:18 +0300
parents 5dc04900cbd7
children 8ef8b6523597
files src/ChangeLog src/xdisp.c
diffstat 2 files changed, 7 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Sat Apr 17 15:33:05 2010 +0300
+++ b/src/ChangeLog	Sat Apr 17 19:02:18 2010 +0300
@@ -1,5 +1,8 @@
 2010-04-17  Eli Zaretskii  <eliz@gnu.org>
 
+	* xdisp.c (extend_face_to_end_of_line): Fix off-by-one error on
+	TTY frames in testing whether a line needs face extension.
+
 	* xdisp.c (extend_face_to_end_of_line): Fix face extension at ZV.
 
 	* term.c (produce_special_glyphs): Mirror the backslash
--- a/src/xdisp.c	Sat Apr 17 15:33:05 2010 +0300
+++ b/src/xdisp.c	Sat Apr 17 19:02:18 2010 +0300
@@ -16803,8 +16803,10 @@
   struct face *face;
   struct frame *f = it->f;
 
-  /* If line is already filled, do nothing.  */
-  if (it->current_x >= it->last_visible_x)
+  /* 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))
     return;
 
   /* Face extension extends the background and box of IT->face_id