From: Alan Third Date: Tue, 16 Jul 2019 20:32:23 +0000 (+0100) Subject: Fix stretch glyphs overlap with line above (bug#36633) X-Git-Tag: emacs-27.0.90~1817^2~64 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=37db78c4bd351041eada08ebbdbf92c16819f09c;p=emacs.git Fix stretch glyphs overlap with line above (bug#36633) * src/nsterm.m (ns_dumpglyphs_stretch): Move overwriting of the clipping rectangle to after performing clipping. --- diff --git a/src/nsterm.m b/src/nsterm.m index 02331826d9b..b8754278f04 100644 --- a/src/nsterm.m +++ b/src/nsterm.m @@ -3913,10 +3913,13 @@ ns_dumpglyphs_stretch (struct glyph_string *s) if (!s->background_filled_p) { n = ns_get_glyph_string_clip_rect (s, r); - *r = NSMakeRect (s->x, s->y, s->background_width, s->height); if (ns_clip_to_rect (s->f, r, n)) { + /* FIXME: Why are we reusing the clipping rectangles? The + other terms don't appear to do anything like this. */ + *r = NSMakeRect (s->x, s->y, s->background_width, s->height); + if (s->hl == DRAW_MOUSE_FACE) { face = FACE_FROM_ID_OR_NULL (s->f, @@ -3951,13 +3954,6 @@ ns_dumpglyphs_stretch (struct glyph_string *s) r[i].origin.x += leftoverrun; r[i].size.width -= leftoverrun; } - - /* XXX: Try to work between problem where a stretch glyph on - a partially-visible bottom row will clear part of the - modeline, and another where list-buffers headers and similar - rows erroneously have visible_height set to 0. Not sure - where this is coming from as other terms seem not to show. */ - r[i].size.height = min (s->height, s->row->visible_height); } [bgCol set];