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.
This commit is contained in:
parent
c990426a98
commit
3057e615af
4 changed files with 16 additions and 2 deletions
|
@ -1,3 +1,13 @@
|
|||
2012-09-11 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
|
||||
|
||||
* 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 <eggert@cs.ucla.edu>
|
||||
|
||||
Simplify, document, and port floating-point (Bug#12381).
|
||||
|
|
|
@ -2591,6 +2591,7 @@ x_draw_glyph_string (struct glyph_string *s)
|
|||
w32_set_clip_rectangle (next->hdc, NULL);
|
||||
next->hl = save;
|
||||
next->num_clips = 0;
|
||||
next->clip_head = s->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23050,7 +23050,8 @@ right_overwritten (struct glyph_string *s)
|
|||
{
|
||||
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 @@ right_overwriting (struct glyph_string *s)
|
|||
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;
|
||||
|
|
|
@ -2975,6 +2975,7 @@ x_draw_glyph_string (struct glyph_string *s)
|
|||
XSetClipMask (next->display, next->gc, None);
|
||||
next->hl = save;
|
||||
next->num_clips = 0;
|
||||
next->clip_head = s->next;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue