emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r105801: Fix bug #9524 with cursor po


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105801: Fix bug #9524 with cursor positioning on display strings in truncated lines.
Date: Sat, 17 Sep 2011 11:09:45 +0300
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105801
fixes bug(s): http://debbugs.gnu.org/9524
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Sat 2011-09-17 11:09:45 +0300
message:
  Fix bug #9524 with cursor positioning on display strings in truncated lines.
  
   src/xdisp.c (set_cursor_from_row): Don't invoke special treatment of
   truncated lines if point is covered by a display string.
modified:
  src/ChangeLog
  src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-09-17 00:42:13 +0000
+++ b/src/ChangeLog     2011-09-17 08:09:45 +0000
@@ -1,3 +1,8 @@
+2011-09-17  Eli Zaretskii  <address@hidden>
+
+       * xdisp.c (set_cursor_from_row): Don't invoke special treatment of
+       truncated lines if point is covered by a display string.  (Bug#9524)
+
 2011-09-16  Paul Eggert  <address@hidden>
 
        * xselect.c: Relax test for outgoing X longs (Bug#9498).

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2011-09-15 17:37:16 +0000
+++ b/src/xdisp.c       2011-09-17 08:09:45 +0000
@@ -13637,15 +13637,17 @@
               /* A truncated row may not include PT among its
                  character positions.  Setting the cursor inside the
                  scroll margin will trigger recalculation of hscroll
-                 in hscroll_window_tree.  */
-              || (row->truncated_on_left_p && pt_old < bpos_min)
-              || (row->truncated_on_right_p && pt_old > bpos_max)
-              /* Zero-width characters produce no glyphs.  */
+                 in hscroll_window_tree.  But if a display string
+                 covers point, defer to the string-handling code
+                 below to figure this out.  */
               || (!string_seen
-                  && !empty_line_p
-                  && (row->reversed_p
-                      ? glyph_after > glyphs_end
-                      : glyph_after < glyphs_end)))
+                  && ((row->truncated_on_left_p && pt_old < bpos_min)
+                      || (row->truncated_on_right_p && pt_old > bpos_max)
+                      /* Zero-width characters produce no glyphs.  */
+                      || (!empty_line_p
+                          && (row->reversed_p
+                              ? glyph_after > glyphs_end
+                              : glyph_after < glyphs_end)))))
        {
          cursor = glyph_after;
          x = -1;


reply via email to

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