* xdisp.c (draw_glyphs): Set clipping to highlight boundaries. [Backport]

This commit is contained in:
YAMAMOTO Mitsuharu 2014-10-22 10:31:37 +09:00
parent acb965c2ad
commit 2498362599
2 changed files with 17 additions and 4 deletions

View file

@ -1,3 +1,8 @@
2014-10-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
[Backport]
2014-10-20 Glenn Morris <rgm@gnu.org>
* minibuf.c (history-length): Increase default from 30 to 100.

View file

@ -24934,13 +24934,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
else
overlap_hl = DRAW_NORMAL_TEXT;
if (hl != overlap_hl)
clip_head = head;
j = i;
BUILD_GLYPH_STRINGS (j, start, h, t,
overlap_hl, dummy_x, last_x);
start = i;
compute_overhangs_and_x (t, head->x, 1);
prepend_glyph_string_lists (&head, &tail, h, t);
clip_head = head;
if (clip_head == NULL)
clip_head = head;
}
/* Prepend glyph strings for glyphs in front of the first glyph
@ -24961,7 +24964,8 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
else
overlap_hl = DRAW_NORMAL_TEXT;
clip_head = head;
if (hl == overlap_hl || clip_head == NULL)
clip_head = head;
BUILD_GLYPH_STRINGS (i, start, h, t,
overlap_hl, dummy_x, last_x);
for (s = h; s; s = s->next)
@ -24985,13 +24989,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
else
overlap_hl = DRAW_NORMAL_TEXT;
if (hl != overlap_hl)
clip_tail = tail;
BUILD_GLYPH_STRINGS (end, i, h, t,
overlap_hl, x, last_x);
/* Because BUILD_GLYPH_STRINGS updates the first argument,
we don't have `end = i;' here. */
compute_overhangs_and_x (h, tail->x + tail->width, 0);
append_glyph_string_lists (&head, &tail, h, t);
clip_tail = tail;
if (clip_tail == NULL)
clip_tail = tail;
}
/* Append glyph strings for glyphs following the last glyph
@ -25009,7 +25016,8 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
else
overlap_hl = DRAW_NORMAL_TEXT;
clip_tail = tail;
if (hl == overlap_hl || clip_tail == NULL)
clip_tail = tail;
i++; /* We must include the Ith glyph. */
BUILD_GLYPH_STRINGS (end, i, h, t,
overlap_hl, x, last_x);