Fix bug #5816.
xdisp.c (set_cursor_from_row): Fix cursor positioning when the string with `cursor' property comes from an `after-string' overlay.
This commit is contained in:
parent
357e2d8ec0
commit
814062c766
2 changed files with 20 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
|||
2010-04-01 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* 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 <rgm@gnu.org>
|
||||
|
||||
* Makefile.in (LIBTIFF, LIBJPEG, LIBPNG, LIBGIF, LIBXPM, XFT_LIBS):
|
||||
|
|
19
src/xdisp.c
19
src/xdisp.c
|
@ -12823,12 +12823,19 @@ set_cursor_from_row (w, row, matrix, delta, delta_bytes, dy, dvpos)
|
|||
|
||||
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 @@ set_cursor_from_row (w, row, matrix, delta, delta_bytes, dy, dvpos)
|
|||
}
|
||||
}
|
||||
|
||||
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. */
|
||||
|
|
Loading…
Add table
Reference in a new issue