emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r117090: * xdisp.c (draw_glyphs): Set clipping to hi


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] trunk r117090: * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
Date: Mon, 12 May 2014 08:58:05 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 117090
revision-id: address@hidden
parent: address@hidden
committer: YAMAMOTO Mitsuharu <address@hidden>
branch nick: trunk
timestamp: Mon 2014-05-12 17:57:59 +0900
message:
  * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xdisp.c                    xdisp.c-20091113204419-o5vbwnq5f7feedwu-240
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2014-05-12 06:59:30 +0000
+++ b/src/ChangeLog     2014-05-12 08:57:59 +0000
@@ -1,3 +1,7 @@
+2014-05-12  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * xdisp.c (draw_glyphs): Set clipping to highlight boundaries.
+
 2014-05-12  Glenn Morris  <address@hidden>
 
        * fileio.c (Ffile_executable_p): Doc tweak.

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2014-04-24 03:59:19 +0000
+++ b/src/xdisp.c       2014-05-12 08:57:59 +0000
@@ -24589,13 +24589,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
@@ -24616,7 +24619,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)
@@ -24640,13 +24644,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
@@ -24664,7 +24671,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]