changeset 107881:6effcd2bae9f

Fix bug #5943: C-e in a truncated line doesn't auto-hscroll. xdisp.c (set_cursor_from_row): Don't consider possibility of other rows with cursor unless they are different from this row and this row is part of a continued line.
author Eli Zaretskii <eliz@gnu.org>
date Fri, 16 Apr 2010 23:37:59 +0300
parents 43aef96c6073
children 9b67d5035af2 d177bcced744
files src/ChangeLog src/xdisp.c
diffstat 2 files changed, 12 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Fri Apr 16 10:22:12 2010 -0700
+++ b/src/ChangeLog	Fri Apr 16 23:37:59 2010 +0300
@@ -1,3 +1,9 @@
+2010-04-16  Eli Zaretskii  <eliz@gnu.org>
+
+	* xdisp.c (set_cursor_from_row): Don't consider possibility of
+	other rows with cursor unless they are different from this row and
+	this row is part of a continued line.  (Bug#5943)
+
 2010-04-16  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* s/freebsd.h: Restore osreldate.h include.
--- a/src/xdisp.c	Fri Apr 16 10:22:12 2010 -0700
+++ b/src/xdisp.c	Fri Apr 16 23:37:59 2010 +0300
@@ -12925,7 +12925,12 @@
      rows whose start and end charpos occlude point.  Only set
      w->cursor if we found a better approximation to the cursor
      position than we have from previously examined rows.  */
-  if (w->cursor.vpos >= 0
+  if (/* we already have a candidate row */
+      w->cursor.vpos >= 0
+      /* that candidate is not the row we are processing */
+      && MATRIX_ROW (matrix, w->cursor.vpos) != row
+      /* this row is part of a continued line */
+      && (row->continued_p || row->continuation_lines_width)
       /* Make sure cursor.vpos specifies a row whose start and end
 	 charpos occlude point.  This is because some callers of this
 	 function leave cursor.vpos at the row where the cursor was