summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2012-11-23 10:27:05 +0200
committerEli Zaretskii <eliz@gnu.org>2012-11-23 10:27:05 +0200
commit24becea4a7839adcea1bafd28604b204ff5cb7d6 (patch)
tree476928ee5d27a2f43e422a781d5adc6f4838c611
parent61a2a12285951942d007929973f8bdd59f82ea53 (diff)
downloademacs-24becea4a7839adcea1bafd28604b204ff5cb7d6.tar.gz
Fix cursor display when several display strings follow each other.
src/xdisp.c (set_cursor_from_row): Skip step 2 only if point is not between bpos_covered and bpos_max. This fixes cursor display when several display strings follow each other.
-rw-r--r--src/ChangeLog4
-rw-r--r--src/xdisp.c2
2 files changed, 5 insertions, 1 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 7460e2c5704..88fbf7a99f2 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,9 @@
2012-11-23 Eli Zaretskii <eliz@gnu.org>
+ * xdisp.c (set_cursor_from_row): Skip step 2 only if point is not
+ between bpos_covered and bpos_max. This fixes cursor display when
+ several display strings follow each other.
+
* .gdbinit (pgx): If the glyph's object is a string, display the
pointer to string data, rather than the value of the string object
itself (which barfs under CHECK_LISP_OBJECT_TYPE).
diff --git a/src/xdisp.c b/src/xdisp.c
index 85fe9a00f60..4bb744a2f9d 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14232,7 +14232,7 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
GLYPH_BEFORE and GLYPH_AFTER. */
if (!((row->reversed_p ? glyph > glyphs_end : glyph < glyphs_end)
&& BUFFERP (glyph->object) && glyph->charpos == pt_old)
- && bpos_covered < pt_old)
+ && !(bpos_max < pt_old && pt_old <= bpos_covered))
{
/* An empty line has a single glyph whose OBJECT is zero and
whose CHARPOS is the position of a newline on that line.