Fix bug #5943: C-e in a truncated line doesn't auto-hscroll.
authorEli Zaretskii <eliz@gnu.org>
Fri, 16 Apr 2010 20:37:59 +0000 (23:37 +0300)
committerEli Zaretskii <eliz@gnu.org>
Fri, 16 Apr 2010 20:37:59 +0000 (23:37 +0300)
 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.

src/ChangeLog
src/xdisp.c

index f3c0c56..d1e22c7 100644 (file)
@@ -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.
index 7523da8..c23c360 100644 (file)
@@ -12925,7 +12925,12 @@ set_cursor_from_row (w, row, matrix, delta, delta_bytes, dy, dvpos)
      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