emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs-24 r117614: * xdisp.c (draw_glyphs): Set clipping to


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] emacs-24 r117614: * xdisp.c (draw_glyphs): Set clipping to highlight boundaries. [Backport]
Date: Wed, 22 Oct 2014 01:31:51 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117614
revision-id: address@hidden
parent: address@hidden
committer: YAMAMOTO Mitsuharu <address@hidden>
branch nick: emacs-24
timestamp: Wed 2014-10-22 10:31:37 +0900
message:
  * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.  [Backport]
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-10-20 22:02:40 +0000
+++ b/src/ChangeLog     2014-10-22 01:31:37 +0000
@@ -1,3 +1,8 @@
+2014-10-22  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
+       [Backport]
+
 2014-10-20  Glenn Morris  <address@hidden>
 
        * minibuf.c (history-length): Increase default from 30 to 100.

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2014-10-20 21:48:58 +0000
+++ b/src/xdisp.c       2014-10-22 01:31:37 +0000
@@ -24934,13 +24934,16 @@
          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 @@
          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 @@
          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 @@
          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);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]