aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/xdisp.c16
2 files changed, 17 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ec904da39bb..b9451fb9006 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12014-10-22 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
4 [Backport]
5
12014-10-20 Glenn Morris <rgm@gnu.org> 62014-10-20 Glenn Morris <rgm@gnu.org>
2 7
3 * minibuf.c (history-length): Increase default from 30 to 100. 8 * minibuf.c (history-length): Increase default from 30 to 100.
diff --git a/src/xdisp.c b/src/xdisp.c
index 7ed11530846..da56885d2eb 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -24934,13 +24934,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
24934 else 24934 else
24935 overlap_hl = DRAW_NORMAL_TEXT; 24935 overlap_hl = DRAW_NORMAL_TEXT;
24936 24936
24937 if (hl != overlap_hl)
24938 clip_head = head;
24937 j = i; 24939 j = i;
24938 BUILD_GLYPH_STRINGS (j, start, h, t, 24940 BUILD_GLYPH_STRINGS (j, start, h, t,
24939 overlap_hl, dummy_x, last_x); 24941 overlap_hl, dummy_x, last_x);
24940 start = i; 24942 start = i;
24941 compute_overhangs_and_x (t, head->x, 1); 24943 compute_overhangs_and_x (t, head->x, 1);
24942 prepend_glyph_string_lists (&head, &tail, h, t); 24944 prepend_glyph_string_lists (&head, &tail, h, t);
24943 clip_head = head; 24945 if (clip_head == NULL)
24946 clip_head = head;
24944 } 24947 }
24945 24948
24946 /* Prepend glyph strings for glyphs in front of the first glyph 24949 /* 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,
24961 else 24964 else
24962 overlap_hl = DRAW_NORMAL_TEXT; 24965 overlap_hl = DRAW_NORMAL_TEXT;
24963 24966
24964 clip_head = head; 24967 if (hl == overlap_hl || clip_head == NULL)
24968 clip_head = head;
24965 BUILD_GLYPH_STRINGS (i, start, h, t, 24969 BUILD_GLYPH_STRINGS (i, start, h, t,
24966 overlap_hl, dummy_x, last_x); 24970 overlap_hl, dummy_x, last_x);
24967 for (s = h; s; s = s->next) 24971 for (s = h; s; s = s->next)
@@ -24985,13 +24989,16 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
24985 else 24989 else
24986 overlap_hl = DRAW_NORMAL_TEXT; 24990 overlap_hl = DRAW_NORMAL_TEXT;
24987 24991
24992 if (hl != overlap_hl)
24993 clip_tail = tail;
24988 BUILD_GLYPH_STRINGS (end, i, h, t, 24994 BUILD_GLYPH_STRINGS (end, i, h, t,
24989 overlap_hl, x, last_x); 24995 overlap_hl, x, last_x);
24990 /* Because BUILD_GLYPH_STRINGS updates the first argument, 24996 /* Because BUILD_GLYPH_STRINGS updates the first argument,
24991 we don't have `end = i;' here. */ 24997 we don't have `end = i;' here. */
24992 compute_overhangs_and_x (h, tail->x + tail->width, 0); 24998 compute_overhangs_and_x (h, tail->x + tail->width, 0);
24993 append_glyph_string_lists (&head, &tail, h, t); 24999 append_glyph_string_lists (&head, &tail, h, t);
24994 clip_tail = tail; 25000 if (clip_tail == NULL)
25001 clip_tail = tail;
24995 } 25002 }
24996 25003
24997 /* Append glyph strings for glyphs following the last glyph 25004 /* Append glyph strings for glyphs following the last glyph
@@ -25009,7 +25016,8 @@ draw_glyphs (struct window *w, int x, struct glyph_row *row,
25009 else 25016 else
25010 overlap_hl = DRAW_NORMAL_TEXT; 25017 overlap_hl = DRAW_NORMAL_TEXT;
25011 25018
25012 clip_tail = tail; 25019 if (hl == overlap_hl || clip_tail == NULL)
25020 clip_tail = tail;
25013 i++; /* We must include the Ith glyph. */ 25021 i++; /* We must include the Ith glyph. */
25014 BUILD_GLYPH_STRINGS (end, i, h, t, 25022 BUILD_GLYPH_STRINGS (end, i, h, t,
25015 overlap_hl, x, last_x); 25023 overlap_hl, x, last_x);