diff options
| author | Kim F. Storm | 2005-11-11 15:33:23 +0000 |
|---|---|---|
| committer | Kim F. Storm | 2005-11-11 15:33:23 +0000 |
| commit | 310316cfb9ddda9e3febe21fe2c984a50f5e1c29 (patch) | |
| tree | 6c933506d2cace4d7de5eb77029f5fe9d8f7cbd5 | |
| parent | 6a77a9f53502373d86285ef58246b38e2bac2760 (diff) | |
| download | emacs-310316cfb9ddda9e3febe21fe2c984a50f5e1c29.tar.gz emacs-310316cfb9ddda9e3febe21fe2c984a50f5e1c29.zip | |
(handle_stop): Skip overlay string handling if
ignore_overlay_strings_at_pos_p is set.
(set_iterator_to_next): At end of display vector, set
ignore_overlay_strings_at_pos_p if dpvec came from an overlay
string, so we skip those overlay strings at current pos.
| -rw-r--r-- | src/xdisp.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index 9f8ac387927..9420114489a 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -2978,11 +2978,13 @@ handle_stop (it) | |||
| 2978 | struct it *it; | 2978 | struct it *it; |
| 2979 | { | 2979 | { |
| 2980 | enum prop_handled handled; | 2980 | enum prop_handled handled; |
| 2981 | int handle_overlay_change_p = 1; | 2981 | int handle_overlay_change_p; |
| 2982 | struct props *p; | 2982 | struct props *p; |
| 2983 | 2983 | ||
| 2984 | it->dpvec = NULL; | 2984 | it->dpvec = NULL; |
| 2985 | it->current.dpvec_index = -1; | 2985 | it->current.dpvec_index = -1; |
| 2986 | handle_overlay_change_p = !it->ignore_overlay_strings_at_pos_p; | ||
| 2987 | it->ignore_overlay_strings_at_pos_p = 0; | ||
| 2986 | 2988 | ||
| 2987 | /* Use face of preceding text for ellipsis (if invisible) */ | 2989 | /* Use face of preceding text for ellipsis (if invisible) */ |
| 2988 | if (it->selective_display_ellipsis_p) | 2990 | if (it->selective_display_ellipsis_p) |
| @@ -5686,6 +5688,9 @@ set_iterator_to_next (it, reseat_p) | |||
| 5686 | reseat_at_next_visible_line_start (it, 1); | 5688 | reseat_at_next_visible_line_start (it, 1); |
| 5687 | else if (it->dpvec_char_len > 0) | 5689 | else if (it->dpvec_char_len > 0) |
| 5688 | { | 5690 | { |
| 5691 | if (it->method == GET_FROM_STRING | ||
| 5692 | && it->n_overlay_strings > 0) | ||
| 5693 | it->ignore_overlay_strings_at_pos_p = 1; | ||
| 5689 | it->len = it->dpvec_char_len; | 5694 | it->len = it->dpvec_char_len; |
| 5690 | set_iterator_to_next (it, reseat_p); | 5695 | set_iterator_to_next (it, reseat_p); |
| 5691 | } | 5696 | } |