Commit 814062c7 authored by Eli Zaretskii's avatar Eli Zaretskii

Fix bug #5816.

 xdisp.c (set_cursor_from_row): Fix cursor positioning when the
 string with `cursor' property comes from an `after-string' overlay.
parent 357e2d8e
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):
......
......@@ -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. */
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment