1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-19 01:10:57 -08:00

Fix bug #9524 with cursor positioning on display strings in truncated lines.

src/xdisp.c (set_cursor_from_row): Don't invoke special treatment of
 truncated lines if point is covered by a display string.
This commit is contained in:
Eli Zaretskii 2011-09-17 11:09:45 +03:00
parent 540e44dbc8
commit bb187662be
2 changed files with 15 additions and 8 deletions

View file

@ -1,3 +1,8 @@
2011-09-17 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (set_cursor_from_row): Don't invoke special treatment of
truncated lines if point is covered by a display string. (Bug#9524)
2011-09-16 Paul Eggert <eggert@cs.ucla.edu>
* xselect.c: Relax test for outgoing X longs (Bug#9498).

View file

@ -13637,15 +13637,17 @@ set_cursor_from_row (struct window *w, struct glyph_row *row,
/* A truncated row may not include PT among its
character positions. Setting the cursor inside the
scroll margin will trigger recalculation of hscroll
in hscroll_window_tree. */
|| (row->truncated_on_left_p && pt_old < bpos_min)
|| (row->truncated_on_right_p && pt_old > bpos_max)
/* Zero-width characters produce no glyphs. */
in hscroll_window_tree. But if a display string
covers point, defer to the string-handling code
below to figure this out. */
|| (!string_seen
&& !empty_line_p
&& (row->reversed_p
? glyph_after > glyphs_end
: glyph_after < glyphs_end)))
&& ((row->truncated_on_left_p && pt_old < bpos_min)
|| (row->truncated_on_right_p && pt_old > bpos_max)
/* Zero-width characters produce no glyphs. */
|| (!empty_line_p
&& (row->reversed_p
? glyph_after > glyphs_end
: glyph_after < glyphs_end)))))
{
cursor = glyph_after;
x = -1;