diff options
Diffstat (limited to 'src/xdisp.c')
| -rw-r--r-- | src/xdisp.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 6ba92f3ed79..864734d4b20 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -13637,15 +13637,17 @@ set_cursor_from_row (struct window *w, struct glyph_row *row, | |||
| 13637 | /* A truncated row may not include PT among its | 13637 | /* A truncated row may not include PT among its |
| 13638 | character positions. Setting the cursor inside the | 13638 | character positions. Setting the cursor inside the |
| 13639 | scroll margin will trigger recalculation of hscroll | 13639 | scroll margin will trigger recalculation of hscroll |
| 13640 | in hscroll_window_tree. */ | 13640 | in hscroll_window_tree. But if a display string |
| 13641 | || (row->truncated_on_left_p && pt_old < bpos_min) | 13641 | covers point, defer to the string-handling code |
| 13642 | || (row->truncated_on_right_p && pt_old > bpos_max) | 13642 | below to figure this out. */ |
| 13643 | /* Zero-width characters produce no glyphs. */ | ||
| 13644 | || (!string_seen | 13643 | || (!string_seen |
| 13645 | && !empty_line_p | 13644 | && ((row->truncated_on_left_p && pt_old < bpos_min) |
| 13646 | && (row->reversed_p | 13645 | || (row->truncated_on_right_p && pt_old > bpos_max) |
| 13647 | ? glyph_after > glyphs_end | 13646 | /* Zero-width characters produce no glyphs. */ |
| 13648 | : glyph_after < glyphs_end))) | 13647 | || (!empty_line_p |
| 13648 | && (row->reversed_p | ||
| 13649 | ? glyph_after > glyphs_end | ||
| 13650 | : glyph_after < glyphs_end))))) | ||
| 13649 | { | 13651 | { |
| 13650 | cursor = glyph_after; | 13652 | cursor = glyph_after; |
| 13651 | x = -1; | 13653 | x = -1; |