diff options
| author | YAMAMOTO Mitsuharu | 2014-05-12 17:57:59 +0900 |
|---|---|---|
| committer | YAMAMOTO Mitsuharu | 2014-05-12 17:57:59 +0900 |
| commit | 9ce28d805f8777b3f7ca6a1039ed845319a5d4f5 (patch) | |
| tree | ae29236b13d66734a14d65b7ee952e9640a26cef /src | |
| parent | bbbabffe06d4c763534d5be92844c48a3f8746e2 (diff) | |
| download | emacs-9ce28d805f8777b3f7ca6a1039ed845319a5d4f5.tar.gz emacs-9ce28d805f8777b3f7ca6a1039ed845319a5d4f5.zip | |
* xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 4 | ||||
| -rw-r--r-- | src/xdisp.c | 16 |
2 files changed, 16 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 5d06882cee7..cc16cf8f274 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2014-05-12 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 2 | |||
| 3 | * xdisp.c (draw_glyphs): Set clipping to highlight boundaries. | ||
| 4 | |||
| 1 | 2014-05-12 Glenn Morris <rgm@gnu.org> | 5 | 2014-05-12 Glenn Morris <rgm@gnu.org> |
| 2 | 6 | ||
| 3 | * fileio.c (Ffile_executable_p): Doc tweak. | 7 | * fileio.c (Ffile_executable_p): Doc tweak. |
diff --git a/src/xdisp.c b/src/xdisp.c index 6728a0275ea..ab492d098d0 100644 --- a/src/xdisp.c +++ b/src/xdisp.c | |||
| @@ -24589,13 +24589,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, | |||
| 24589 | else | 24589 | else |
| 24590 | overlap_hl = DRAW_NORMAL_TEXT; | 24590 | overlap_hl = DRAW_NORMAL_TEXT; |
| 24591 | 24591 | ||
| 24592 | if (hl != overlap_hl) | ||
| 24593 | clip_head = head; | ||
| 24592 | j = i; | 24594 | j = i; |
| 24593 | BUILD_GLYPH_STRINGS (j, start, h, t, | 24595 | BUILD_GLYPH_STRINGS (j, start, h, t, |
| 24594 | overlap_hl, dummy_x, last_x); | 24596 | overlap_hl, dummy_x, last_x); |
| 24595 | start = i; | 24597 | start = i; |
| 24596 | compute_overhangs_and_x (t, head->x, 1); | 24598 | compute_overhangs_and_x (t, head->x, 1); |
| 24597 | prepend_glyph_string_lists (&head, &tail, h, t); | 24599 | prepend_glyph_string_lists (&head, &tail, h, t); |
| 24598 | clip_head = head; | 24600 | if (clip_head == NULL) |
| 24601 | clip_head = head; | ||
| 24599 | } | 24602 | } |
| 24600 | 24603 | ||
| 24601 | /* Prepend glyph strings for glyphs in front of the first glyph | 24604 | /* Prepend glyph strings for glyphs in front of the first glyph |
| @@ -24616,7 +24619,8 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, | |||
| 24616 | else | 24619 | else |
| 24617 | overlap_hl = DRAW_NORMAL_TEXT; | 24620 | overlap_hl = DRAW_NORMAL_TEXT; |
| 24618 | 24621 | ||
| 24619 | clip_head = head; | 24622 | if (hl == overlap_hl || clip_head == NULL) |
| 24623 | clip_head = head; | ||
| 24620 | BUILD_GLYPH_STRINGS (i, start, h, t, | 24624 | BUILD_GLYPH_STRINGS (i, start, h, t, |
| 24621 | overlap_hl, dummy_x, last_x); | 24625 | overlap_hl, dummy_x, last_x); |
| 24622 | for (s = h; s; s = s->next) | 24626 | for (s = h; s; s = s->next) |
| @@ -24640,13 +24644,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, | |||
| 24640 | else | 24644 | else |
| 24641 | overlap_hl = DRAW_NORMAL_TEXT; | 24645 | overlap_hl = DRAW_NORMAL_TEXT; |
| 24642 | 24646 | ||
| 24647 | if (hl != overlap_hl) | ||
| 24648 | clip_tail = tail; | ||
| 24643 | BUILD_GLYPH_STRINGS (end, i, h, t, | 24649 | BUILD_GLYPH_STRINGS (end, i, h, t, |
| 24644 | overlap_hl, x, last_x); | 24650 | overlap_hl, x, last_x); |
| 24645 | /* Because BUILD_GLYPH_STRINGS updates the first argument, | 24651 | /* Because BUILD_GLYPH_STRINGS updates the first argument, |
| 24646 | we don't have `end = i;' here. */ | 24652 | we don't have `end = i;' here. */ |
| 24647 | compute_overhangs_and_x (h, tail->x + tail->width, 0); | 24653 | compute_overhangs_and_x (h, tail->x + tail->width, 0); |
| 24648 | append_glyph_string_lists (&head, &tail, h, t); | 24654 | append_glyph_string_lists (&head, &tail, h, t); |
| 24649 | clip_tail = tail; | 24655 | if (clip_tail == NULL) |
| 24656 | clip_tail = tail; | ||
| 24650 | } | 24657 | } |
| 24651 | 24658 | ||
| 24652 | /* Append glyph strings for glyphs following the last glyph | 24659 | /* Append glyph strings for glyphs following the last glyph |
| @@ -24664,7 +24671,8 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row, | |||
| 24664 | else | 24671 | else |
| 24665 | overlap_hl = DRAW_NORMAL_TEXT; | 24672 | overlap_hl = DRAW_NORMAL_TEXT; |
| 24666 | 24673 | ||
| 24667 | clip_tail = tail; | 24674 | if (hl == overlap_hl || clip_tail == NULL) |
| 24675 | clip_tail = tail; | ||
| 24668 | i++; /* We must include the Ith glyph. */ | 24676 | i++; /* We must include the Ith glyph. */ |
| 24669 | BUILD_GLYPH_STRINGS (end, i, h, t, | 24677 | BUILD_GLYPH_STRINGS (end, i, h, t, |
| 24670 | overlap_hl, x, last_x); | 24678 | overlap_hl, x, last_x); |