aboutsummaryrefslogtreecommitdiffstats
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu2012-09-11 12:32:41 +0900
committerYAMAMOTO Mitsuharu2012-09-11 12:32:41 +0900
commit3057e615af94af8d08f475208c7e459f5d7115ac (patch)
tree1e784dddfa2fdd42e420cd4ff469d66b4f7f8368 /src/xdisp.c
parentc990426a9883c1bd1782e6b117184b654eecda67 (diff)
downloademacs-3057e615af94af8d08f475208c7e459f5d7115ac.tar.gz
emacs-3057e615af94af8d08f475208c7e459f5d7115ac.zip
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.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index a7913768d8a..1deda682192 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -23050,7 +23050,8 @@ right_overwritten (struct glyph_string *s)
23050 { 23050 {
23051 int x = 0, i; 23051 int x = 0, i;
23052 struct glyph *glyphs = s->row->glyphs[s->area]; 23052 struct glyph *glyphs = s->row->glyphs[s->area];
23053 int first = (s->first_glyph - glyphs) + (s->cmp ? 1 : s->nchars); 23053 int first = (s->first_glyph - glyphs
23054 + (s->first_glyph->type == COMPOSITE_GLYPH ? 1 : s->nchars));
23054 int end = s->row->used[s->area]; 23055 int end = s->row->used[s->area];
23055 23056
23056 for (i = first; i < end && s->right_overhang > x; ++i) 23057 for (i = first; i < end && s->right_overhang > x; ++i)
@@ -23073,7 +23074,8 @@ right_overwriting (struct glyph_string *s)
23073 int i, k, x; 23074 int i, k, x;
23074 int end = s->row->used[s->area]; 23075 int end = s->row->used[s->area];
23075 struct glyph *glyphs = s->row->glyphs[s->area]; 23076 struct glyph *glyphs = s->row->glyphs[s->area];
23076 int first = (s->first_glyph - glyphs) + (s->cmp ? 1 : s->nchars); 23077 int first = (s->first_glyph - glyphs
23078 + (s->first_glyph->type == COMPOSITE_GLYPH ? 1 : s->nchars));
23077 23079
23078 k = -1; 23080 k = -1;
23079 x = 0; 23081 x = 0;