[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r99799: Fix bug #5816.
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r99799: Fix bug #5816. |
Date: |
Thu, 01 Apr 2010 15:37:28 +0300 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 99799
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Thu 2010-04-01 15:37:28 +0300
message:
Fix bug #5816.
xdisp.c (set_cursor_from_row): Fix cursor positioning when the
string with `cursor' property comes from an `after-string' overlay.
modified:
src/ChangeLog
src/xdisp.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2010-04-01 07:10:31 +0000
+++ b/src/ChangeLog 2010-04-01 12:37:28 +0000
@@ -1,3 +1,9 @@
+2010-04-01 Eli Zaretskii <address@hidden>
+
+ * xdisp.c (set_cursor_from_row): Fix cursor positioning when the
+ string with `cursor' property comes from an `after-string'
+ overlay. (Bug#5816)
+
2010-04-01 Glenn Morris <address@hidden>
* Makefile.in (LIBTIFF, LIBJPEG, LIBPNG, LIBGIF, LIBXPM, XFT_LIBS):
=== modified file 'src/xdisp.c'
--- a/src/xdisp.c 2010-03-31 14:28:16 +0000
+++ b/src/xdisp.c 2010-04-01 12:37:28 +0000
@@ -12823,12 +12823,19 @@
str = glyph->object;
tem = string_buffer_position_lim (w, str, pos, pos_after, 0);
- if (pos <= tem)
+ if (tem == 0 /* from overlay */
+ || 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 (tem == pt_old)
+ 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)
{
/* The glyphs from this string could have
been reordered. Find the one with the
@@ -12861,9 +12868,11 @@
}
}
- goto compute_x;
+ if (tem == pt_old)
+ goto compute_x;
}
- pos = tem + 1; /* don't find previous instances */
+ if (tem)
+ pos = tem + 1; /* don't find previous instances */
}
/* This string is not what we want; skip all of the
glyphs that came from it. */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r99799: Fix bug #5816.,
Eli Zaretskii <=