emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r109975: Fix wrong overhang display f


From: YAMAMOTO Mitsuharu
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r109975: Fix wrong overhang display for gstring compositions (Bug#12364).
Date: Tue, 11 Sep 2012 12:32:41 +0900
User-agent: Bazaar (2.5.0)

------------------------------------------------------------
revno: 109975
committer: YAMAMOTO Mitsuharu <address@hidden>
branch nick: trunk
timestamp: Tue 2012-09-11 12:32:41 +0900
message:
  Fix wrong overhang display for gstring compositions (Bug#12364).
  
  * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
  composition cases (Bug#12364).
  
  * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
  overhang of succeeding glyphs overlapping box cursor.
  
  * w32term.c (x_draw_glyph_string): Likewise.
modified:
  src/ChangeLog
  src/w32term.c
  src/xdisp.c
  src/xterm.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2012-09-11 02:28:27 +0000
+++ b/src/ChangeLog     2012-09-11 03:32:41 +0000
@@ -1,3 +1,13 @@
+2012-09-11  YAMAMOTO Mitsuharu  <address@hidden>
+
+       * xdisp.c (right_overwritten, right_overwriting): Also handle gstring
+       composition cases (Bug#12364).
+
+       * xterm.c (x_draw_glyph_string): Avoid overwriting inverted left
+       overhang of succeeding glyphs overlapping box cursor.
+
+       * w32term.c (x_draw_glyph_string): Likewise.
+
 2012-09-11  Paul Eggert  <address@hidden>
 
        Simplify, document, and port floating-point (Bug#12381).

=== modified file 'src/w32term.c'
--- a/src/w32term.c     2012-09-04 17:34:54 +0000
+++ b/src/w32term.c     2012-09-11 03:32:41 +0000
@@ -2591,6 +2591,7 @@
                 w32_set_clip_rectangle (next->hdc, NULL);
                next->hl = save;
                next->num_clips = 0;
+               next->clip_head = s->next;
              }
        }
     }

=== modified file 'src/xdisp.c'
--- a/src/xdisp.c       2012-09-11 01:20:56 +0000
+++ b/src/xdisp.c       2012-09-11 03:32:41 +0000
@@ -23050,7 +23050,8 @@
     {
       int x = 0, i;
       struct glyph *glyphs = s->row->glyphs[s->area];
-      int first = (s->first_glyph - glyphs) + (s->cmp ? 1 : s->nchars);
+      int first = (s->first_glyph - glyphs
+                  + (s->first_glyph->type == COMPOSITE_GLYPH ? 1 : s->nchars));
       int end = s->row->used[s->area];
 
       for (i = first; i < end && s->right_overhang > x; ++i)
@@ -23073,7 +23074,8 @@
   int i, k, x;
   int end = s->row->used[s->area];
   struct glyph *glyphs = s->row->glyphs[s->area];
-  int first = (s->first_glyph - glyphs) + (s->cmp ? 1 : s->nchars);
+  int first = (s->first_glyph - glyphs
+              + (s->first_glyph->type == COMPOSITE_GLYPH ? 1 : s->nchars));
 
   k = -1;
   x = 0;

=== modified file 'src/xterm.c'
--- a/src/xterm.c       2012-09-07 01:27:44 +0000
+++ b/src/xterm.c       2012-09-11 03:32:41 +0000
@@ -2975,6 +2975,7 @@
                XSetClipMask (next->display, next->gc, None);
                next->hl = save;
                next->num_clips = 0;
+               next->clip_head = s->next;
              }
        }
     }


reply via email to

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