emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r99806: xdisp.c (set_cursor_from_row)


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r99806: xdisp.c (set_cursor_from_row): Improve comments.
Date: Fri, 02 Apr 2010 12:35:01 +0300
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 99806
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Fri 2010-04-02 12:35:01 +0300
message:
  xdisp.c (set_cursor_from_row): Improve comments.
modified:
  src/xdisp.c
=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2010-04-01 12:37:28 +0000
+++ b/src/xdisp.c       2010-04-02 09:35:01 +0000
@@ -12606,7 +12606,8 @@
            }
          if (INTEGERP (glyph->object) && glyph->charpos < 0)
            --glyph;
-         /* By default, put the cursor on the rightmost glyph.  */
+         /* By default, in reversed rows we put the cursor on the
+            rightmost (first in the reading order) glyph.  */
          for (g = end + 1; g < glyph; g++)
            x += g->pixel_width;
          cursor_x = x;
@@ -12683,7 +12684,16 @@
                bpos_covered = bpos_max + XINT (chprop);
                /* If the `cursor' property covers buffer positions up
                   to and including point, we should display cursor on
-                  this glyph.  */
+                  this glyph.  Note that overlays and text properties
+                  with string values stop bidi reordering, so every
+                  buffer position to the left of the string is always
+                  smaller than any position to the right of the
+                  string.  Therefore, if a `cursor' property on one
+                  of the string's characters has an integer value, we
+                  will break out of the loop below _before_ we get to
+                  the position match above.  IOW, integer values of
+                  the `cursor' property override the "exact match for
+                  point" strategy of positioning the cursor.  */
                /* Implementation note: bpos_max == pt_old when, e.g.,
                   we are in an empty line, where bpos_max is set to
                   MATRIX_ROW_START_CHARPOS, see above.  */


reply via email to

[Prev in Thread] Current Thread [Next in Thread]