emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r107809: Fix bug #11094 with cursor d


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r107809: Fix bug #11094 with cursor display on display string after invisible text.
Date: Mon, 09 Apr 2012 11:00:08 +0300
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 107809
fixes bug(s): http://debbugs.gnu.org/11094
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Mon 2012-04-09 11:00:08 +0300
message:
  Fix bug #11094 with cursor display on display string after invisible text.
  
   src/xdisp.c (set_cursor_from_row): If the display string appears in
   the buffer at position that is closer to point than the position
   after the display string, display the cursor on the first glyph of
   the display string.  Fixes cursor display when a 'display' text
   property immediately follows invisible text.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-04-09 06:52:40 +0000
+++ b/src/ChangeLog     2012-04-09 08:00:08 +0000
@@ -1,3 +1,11 @@
+2012-04-09  Eli Zaretskii  <address@hidden>
+
+       * xdisp.c (set_cursor_from_row): If the display string appears in
+       the buffer at position that is closer to point than the position
+       after the display string, display the cursor on the first glyph of
+       the display string.  Fixes cursor display when a 'display' text
+       property immediately follows invisible text.  (Bug#11094)
+
 2012-04-09  Paul Eggert  <address@hidden>
 
        composite.c: use 'double' consistently

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2012-03-31 19:30:53 +0000
+++ b/src/xdisp.c       2012-04-09 08:00:08 +0000
@@ -14042,15 +14042,18 @@
                      || pos <= tem)
                    {
                      /* If the string from which this glyph came is
-                        found in the buffer at point, then we've
-                        found the glyph we've been looking for.  If
-                        it comes from an overlay (tem == 0), and it
-                        has the `cursor' property on one of its
+                        found in the buffer at point, or at position
+                        that is closer to point than pos_after, then
+                        we've found the glyph we've been looking for.
+                        If it comes from an overlay (tem == 0), and
+                        it has the `cursor' property on one of its
                         glyphs, record that glyph as a candidate for
                         displaying the cursor.  (As in the
                         unidirectional version, we will display the
                         cursor on the last candidate we find.)  */
-                     if (tem == 0 || tem == pt_old)
+                     if (tem == 0
+                         || tem == pt_old
+                         || (tem - pt_old > 0 && tem < pos_after))
                        {
                          /* The glyphs from this string could have
                             been reordered.  Find the one with the
@@ -14088,7 +14091,8 @@
                                }
                            }
 
-                         if (tem == pt_old)
+                         if (tem == pt_old
+                             || (tem - pt_old > 0 && tem < pos_after))
                            goto compute_x;
                        }
                      if (tem)


reply via email to

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