+2010-04-25 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): Don't return zero if cursor was
+ found by `cursor' property of a display string.
+ (display_line): Preserve overlay and string info in row->end.
+
2010-04-25 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (display_line): Fix crash with bidi display on the last
/* If we reached the end of the line, and END was from a string,
the cursor is not on this line. */
- if (glyph == end
+ if (cursor == NULL
+ && glyph == end
&& STRINGP ((glyph - incr)->object)
&& row->continued_p)
return 0;
in the logical order, unless we are at ZV. */
if (row->ends_at_zv_p)
{
- row_end = row->end = it->current;
if (!row->used[TEXT_AREA])
{
row->start.pos.charpos = row_end.pos.charpos;
it->eol_pos.charpos = it->eol_pos.bytepos = 0;
}
*it = save_it;
+ row_end.string_pos = it->current.string_pos;
+ row_end.overlay_string_index = it->current.overlay_string_index;
+ row_end.dpvec_index = it->current.dpvec_index;
row->end = row_end;
}
}