]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix cursor positioning at end of buffer under bidi display.
authorEli Zaretskii <eliz@gnu.org>
Tue, 16 Aug 2011 14:28:19 +0000 (17:28 +0300)
committerEli Zaretskii <eliz@gnu.org>
Tue, 16 Aug 2011 14:28:19 +0000 (17:28 +0300)
 src/xdisp.c (set_cursor_from_row): Don't accept a previous candidate
 if it fails the cursor_row_p test.  Fixes cursor positioning at ZV.

src/ChangeLog
src/xdisp.c

index 2364f71c6a4ca0112134fb8d439085f3232ff14c..5bc07722191e1bedabc91d182396677878ee5a09 100644 (file)
@@ -1,3 +1,8 @@
+2011-08-16  Eli Zaretskii  <eliz@gnu.org>
+
+       * xdisp.c (set_cursor_from_row): Don't accept a previous candidate
+       if it fails the cursor_row_p test.  Fixes cursor positioning at ZV.
+
 2011-08-16  Ken Brown  <kbrown@cornell.edu>
 
        Fix memory allocation problems in Cygwin build (Bug#9273).
index b83d4bac74343b1a5e39ac7b8965aa7b3a70934a..ea98ac575d9b67ec8de304ffceb3a36d96c00460 100644 (file)
@@ -13751,11 +13751,13 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
       /* that candidate is not the row we are processing */
       && MATRIX_ROW (matrix, w->cursor.vpos) != row
       /* 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
-        displayed during the last redisplay cycle.  */
+        charpos occlude point, and it is valid candidate for being a
+        cursor-row.  This is because some callers of this function
+        leave cursor.vpos at the row where the cursor was displayed
+        during the last redisplay cycle.  */
       && MATRIX_ROW_START_CHARPOS (MATRIX_ROW (matrix, w->cursor.vpos)) <= pt_old
-      && pt_old <= MATRIX_ROW_END_CHARPOS (MATRIX_ROW (matrix, w->cursor.vpos)))
+      && pt_old <= MATRIX_ROW_END_CHARPOS (MATRIX_ROW (matrix, w->cursor.vpos))
+      && cursor_row_p (MATRIX_ROW (matrix, w->cursor.vpos)))
     {
       struct glyph *g1 =
        MATRIX_ROW_GLYPH_START (matrix, w->cursor.vpos) + w->cursor.hpos;