+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).
/* 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;